久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4366|回復: 0
收起左側

STM32通用定時器TIM2-5的基本用法

[復制鏈接]
ID:102668 發表于 2016-1-16 05:07 | 顯示全部樓層 |閱讀模式
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);
}
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青综合 | 成人国产精品一区二区 | 野外(巨肉高h) | 黄色小视频在线免费观看 | 在线观看视频一区二区三区 | 亚洲天堂一区二区三区 | 国产精品亚洲综合 | 黄色在线观看免费 | 国产精品视频免费在线观看 | 在线观看日韩 | 日本少妇高潮达到高潮 | 欧美一级免费看 | 欧美一级黄色录像 | 欧美精品日韩 | 国产精品久久久久久久久 | 亚洲经典一区 | 欧美精品在线观看 | 日韩在线免费播放 | 日韩影音| 婷婷97| 国产精品看片 | 久久精品日韩 | 亚洲小视频在线观看 | 一区二区三区视频在线 | 黄色a一级片| 欧美有码视频 | 国产乱人乱偷精品视频 | 日本免费视频 | 免费网站观看www在线观看 | 日韩精品少妇 | 国产日本在线观看 | 日本特黄一级片 | 黄色免费观看视频 | 一区二区视频在线播放 | 久久狠| 国产精品久久久一区二区 | 亚洲伦理精品 | 青青草国产在线视频 | 黄色成人在线观看 | 色婷婷影院 | 国产日韩免费 |