資源簡介
STM32的通用定時器Timer(庫函數),親測可用,內有詳細代碼注釋和說明講解,很好的學習資料。

代碼片段和文件信息
/*----------------------------------------------------------------------------
QQ:?958664258
21IC用戶名:banhushui
交流平臺:http://blog.21ic.com/user1/5817/index.html
旺旺:半壺水電子
編譯器版本:MDK4.12
?*---------------------------------------------------------------------------*/
/*?Includes?------------------------------------------------------------------*/
#define?SYS_GLOBALS
#include?“include.h“
u32?volatile?gTimer_1ms=0;
/*?Private?function?prototypes?-----------------------------------------------*/
void?RCC_Configuration(void);
void?NVIC_Configuration(void);
void?GPIO_Configuration(void);
/*------------------------------------------------------------------------------
??中斷函數
??1?ms中斷1次
?*------------------------------------------------------------------------------*/
void?TIM2_IRQHandler(void)
{
?
???if(TIM_GetITStatus(TIM2TIM_IT_Update)!=RESET)
???{
??????//清除中斷標志
??????TIM_ClearITPendingBit(TIM2TIM_IT_Update);
??????gTimer_1ms++;
???}
}
void?Timer2_Configuration(void)
{
?TIM_TimebaseInitTypeDef???TIM_TimebaseStructure;
?NVIC_InitTypeDef?NVIC_InitStructure;
??
??//------------------------------------------------------------
??//打開定時器的時鐘
??RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2?ENABLE);
??//------------------------------------------------------------
??
??//TIMx寄存器重設為缺省值
??TIM_DeInit(TIM2);
??
??TIM_TimebaseStructure.TIM_Period=1; ?//自動重裝載寄存器周期的值
??TIM_TimebaseStructure.TIM_Prescaler=0;??//TIMx?時鐘頻率除數的預分頻值
??TIM_TimebaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;?//采樣分頻
??TIM_TimebaseStructure.TIM_CounterMode=TIM_CounterMode_Up;?//向上計數模式
??TIM_TimebaseInit(TIM2?&TIM_TimebaseStructure);
??
??TIM_PrescalerConfig(TIM236000-1TIM_PSCReloadMode_Immediate);//時鐘分頻系數,定時器1ms
??TIM_ARRPreloadConfig(TIM2?DISABLE);//禁止ARR預裝載緩沖器
??TIM_ITConfig(TIM2TIM_IT_UpdateENABLE);
??
??TIM_Cmd(TIM2?ENABLE); //開啟時鐘
??
??//------------------------------------------------------------
??//配置TIM2中斷
??NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
??NVIC_InitStructure.NVIC_IRQChannel?=?TIM2_IRQChannel;
??NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?0;
??NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?0;
??NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE;
??NVIC_Init(&NVIC_InitStructure);
}
//LED循環閃爍
void?LedFlash(void)
{
??static?u16?leds?=?0x01;
??u32?temp;
????
????//先讀出PC端口狀態
????temp?=?GPIOC->ODR;
????
????//先屏蔽掉PC8~PC11
????temp?|=?0x00000F00;
????
????//重新設置PC8~PC11輸出狀態,IO輸出低電平點亮LED
????GPIOC->ODR?=?temp&(~(leds<<8));
????leds?<<=?1;
????if?(?(leds&0x0f)?==?0)
?????leds?=?0x01;
}
//精確的延時
void?Delay(u32?nTime)
{u32?counter;
??
??counter=gTimer_1ms;
??while(?gTimer_1ms-counter???
}
/*?Private?functions?---------------------------------------------------------*/
/*******************************************************************************
*?Function?Name??:?main
*?Description????:?Main?program.
*?Input??????????:?None
*?Outpu
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????459??2009-07-05?18:17??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\globals.h
?????文件????????256??2011-06-01?16:42??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\include.h
?????文件???????8165??2017-11-27?20:48??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\main.c
?????文件???????1246??2009-06-28?23:57??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\main.h
?????文件??????12814??2009-01-18?15:39??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\myuse.h
?????文件???????2042??2011-06-10?13:49??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\Project.Opt
?????文件???????7648??2011-06-10?13:49??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\Project.Uv2
?????文件?????156643??2011-06-10?13:49??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\Project.uvopt
?????文件??????46003??2011-06-05?19:57??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\Project.uvproj
?????文件???????1257??2009-06-29?16:13??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\RAM.ini
?????文件???????2800??2008-09-23?09:24??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\readme.txt
?????文件???????6311??2008-09-23?09:24??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\stm32f10x_conf.h
?????文件??????29400??2011-06-01?16:43??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\stm32f10x_it.c
?????文件???????3842??2008-09-23?09:24??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\stm32f10x_it.h
?????文件??????12871??2008-09-23?09:24??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\stm32f10x_vector.s
?????文件????????311??2011-02-10?21:25??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main\說明.txt
?????文件????????479??2010-12-22?17:44??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\ObjRAM\BHS-STM32-RAM.sct
?????文件????????174??2011-06-10?13:49??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\ObjRAM\stm32f10x_vector._ia
?????文件????????479??2010-12-29?00:28??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\ObjSim\STM32.sct
?????文件????????258??2011-06-10?13:49??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\ObjSim\stm32f10x_vector._ia
?????目錄??????????0??2016-07-07?18:38??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\LstFlash
?????目錄??????????0??2016-07-07?18:38??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\LstRAM
?????目錄??????????0??2016-07-07?18:38??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\LstSim
?????目錄??????????0??2016-07-07?18:38??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\ObjFlash
?????目錄??????????0??2017-11-27?20:47??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\ObjRAM
?????目錄??????????0??2017-11-27?20:47??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out\ObjSim
?????目錄??????????0??2017-11-27?20:47??BHS-STM32?實驗10-通用定時器Timer(庫函數)\main
?????目錄??????????0??2017-11-27?20:47??BHS-STM32?實驗10-通用定時器Timer(庫函數)\out
?????目錄??????????0??2017-11-27?20:47??BHS-STM32?實驗10-通用定時器Timer(庫函數)
-----------?---------??----------?-----??----
............此處省略2個文件信息
評論
共有 條評論