標題: STM32通用定時器TIM2-5的基本用法 [打印本頁]
作者: 51hei社區 時間: 2016-1-16 05:07
標題: STM32通用定時器TIM2-5的基本用法
STM32的定時器是個強大的模塊,定時器使用的頻率也是很高的,定時器可以做一些基本的定時,還可以做PWM輸出或者輸入捕獲功能。從系統框架圖下看,名為TIMx的有八個,其中TIM1和TIM8掛在APB2總線上,而TIM2-TIM7則掛在APB1總線上。其中TIM1&TIM8稱為高級控制定時器(advanced control timer).他們所在的APB2總線也比APB1總線要好。APB2可以工作在72MHz下,而APB1最大是36MHz。
由上圖可知,當APB1 的預分頻系數為1 時,這個倍頻器不起作用,定時器的時鐘頻率等于APB1 的頻率;當APB1的預分頻系數為其它數值(即預分頻系數為2、4、8 或16)時,這個倍頻器起作用,定時器的時鐘頻率等于APB1 的頻率兩倍。也就是,當APB1不分頻,TIM3的時鐘速度為36MHz,當2分頻是,APB1變成18MHz,但是TIM又會倍頻,即TIM時鐘等于18*2=36MHz。這里我們用向上計數的方式,即TIMx_CNT中的計數值達到TIMx_ARR中的值時,產生中斷,TIMx_CNT又從0開始計。
按以下步驟編程:
1.系統初始化,主要初始化時鐘等。
2.GPIO初始化,用于LED,有了燈就便于觀察了。
3.TIM3的配置。
4.NVIC的配置。
5.編寫中斷服務函數。
void GPIO_PA_Init()
{//PA8管腳配置
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_DeInit(GPIOA);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP ;//推挽輸出
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);//使能端口時鐘A
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void TIMER3_Init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_DeInit(TIM3);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
TIM_TimeBaseStructure.TIM_Period=10000;//ARR的值
TIM_TimeBaseStructure.TIM_Prescaler=7200-1;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上計數模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM3, ENABLE); //開啟時鐘
}
void NVIC_Configuration()
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); // 搶占式優先級別
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;//指定中斷源
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;// 指定響應優先級別1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
int main(void)
{
Stm32_Clock_Init(9); //系統時鐘設置
delay_init(72); //延時初始化
GPIO_PA_Init();
TIMER3_Init();
NVIC_Configuration();
while(1);
}
void TIM3_IRQHandler()
{
if(TIM_GetITStatus(TIM3 , TIM_IT_Update) == SET)
{
TIM_ClearITPendingBit(TIM3 , TIM_FLAG_Update);
if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_8)) GPIO_ResetBits(GPIOA, GPIO_Pin_8);
else GPIO_SetBits(GPIOA, GPIO_Pin_8);
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
成人免费看电影
|
黄免费观看视频
|
亚洲夜射
|
日韩一级免费电影
|
一级做a爰片性色毛片
|
91精品久久久久久久久久
|
欧美日韩理论
|
国产精品中文字幕在线
|
亚洲视频一区在线
|
综合久久综合久久
|
国产91在线 | 中日
|
毛片一区二区三区
|
欧美一级二级视频
|
国产精品一区二区三区免费观看
|
国产精品一区二
|
av中文字幕在线
|
久久蜜桃资源一区二区老牛
|
天天人人精品
|
在线播放亚洲
|
欧美精品一区二区三区四区 在线
|
久久亚洲一区二区三区四区
|
精品欧美一区二区久久久伦
|
国产精品海角社区在线观看
|
欧美久久一级
|
国产在线不卡视频
|
黄网址在线观看
|
国产精品夜间视频香蕉
|
91婷婷韩国欧美一区二区
|
一区二区三区网站
|
亚洲视频一区在线
|
欧美精品在线免费观看
|
亚洲精品小视频在线观看
|
欧美成人免费在线
|
黄网免费|
欧美久久不卡
|
欧美高清成人
|
99久久精品一区二区成人
|
狼色网
|
国产精品精品久久久久久
|
在线视频h|
日韩在线资源
|