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

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

STM32定時器的應用

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年05月01日   【字體:

 一:STM32F106 一共有11個定時器  2個高級定時器,4個普通定時器,2個基本定時,2個看門狗,和一個滴答定時器

  1:高級定時器 計數方式(向上,向下)、預分頻值 1—65532、四通道,輸出輸入捕獲,PWM互補輸出
  2:普通定時器 計數方式(向上,向下)、預分頻值 1—65532、四通道,輸出輸入捕獲
  3:基本定時器計數方式(向上      )、預分頻值 1—65532、
二:定時器配置方法步驟:

  在配置前我們要添加定時器的庫函數 stm32f10x_tim.c

  1:配置中斷向量表
  2:配置定時器時鐘
  3:配置定時器
  4:使能定時器
  5:使能中斷

三:事例分析(定時中斷3)

  1:配置中斷向量表
void NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;

    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;   //定時器中斷3中斷向量
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

}

 2:配置定時器時鐘

 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

 3:配置定時器(初始化)
 void TIM_Config(void)

 TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 //TIM_OCInitTypeDef  TIM_OCInitStructure; 
 TIM_DeInit(TIM3);                              //復位定時器
 TIM_TimeBaseStructure.TIM_Prescaler = 7200-1;  // 時鐘預分頻數
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 定時器模式 向上計數
 TIM_TimeBaseStructure.TIM_Period = 9999;    // 自動重裝載寄存器周期的值( 定時時間 ) 累計 0xFFFF

個頻率后產生個更新或者中斷 ( 也是說定時時間到 )

 

定時器時間計算:

每次進入中斷服務程序間隔時間為((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒

// 72000000/7200=10000
// 10000/10000=1s

 

 TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1;      // 時間分割值
 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);             // 初始化定時器 
 TIM_ClearFlag(TIM3,TIM_FLAG_Update);                        //清除定時器中斷標志 
 TIM_Cmd(TIM3, ENABLE);                                      // 4:使能定時器
 TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);                  // 打開中斷 溢出中斷 5:使能中斷

四:在主函數運行時調用這三個函數對定時器進行配置即可。

 

五:定時中斷函數的執行

 

  TIME3的定時中斷函數的執行在中斷向量表中,即  stm32f10x_it.c 文件中。

   因為使用的函數庫版本不同有的stm32f10x_it.c中給出了void TIM3_IRQHandler(void) {}函數,只需要我們添加相應的中斷服務程序即可,如果stm32f10x_it.c文件中沒有這個函數我們就自己創建一個同名函數即可。

如:

 這個例子是判斷中斷標志位是否溢出來進入中斷,如果溢出就執行中斷服務子程序,特別要注意的是在中斷服務執行前或者執行后一定要清楚中斷標志位,以免影響后面中斷的進入。

 void TIM3_IRQHandler(void)
    

  if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
   
     TIM_ClearITPendingBit(TIM3, TIM_FLAG_Update);

    GPIO_WriteBit(GPIOE, GPIO_Pin_3, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOE,               GPIO_Pin_3))); 
 
 
 }
 
 }

關閉窗口

相關文章

主站蜘蛛池模板: 国产在线精品一区二区 | 色眯眯视频在线观看 | 亚洲性视频网站 | 毛片网站在线观看 | 欧洲视频一区二区 | 日韩欧美三区 | 影音先锋中文字幕在线观看 | 午夜视频在线观看视频 | 一道本视频 | 亚洲午夜精品视频 | 国产一区二区三区www | 亚洲 欧美 激情 另类 校园 | 久久久久亚洲精品 | 日韩欧美国产精品 | 成人在线不卡 | 欧美午夜精品 | 精品96久久久久久中文字幕无 | 人人看人人草 | 草久久久 | 精品一区国产 | 日韩欧美字幕 | 日日操视频 | av一区二区三区 | 久久精品视频网站 | 午夜影院在线观看 | 亚洲天堂免费在线 | 在线欧美亚洲 | 成人激情视频在线 | 亚洲天堂免费在线 | 欧美在线播放一区 | 亚洲一区中文字幕在线观看 | 国产一区亚洲 | 日本精品视频一区二区三区四区 | 天天看天天操 | 国产精品久久国产精品 | 99热99| 日本久久久影视 | 黄色片在线看 | 精品国产91 | 综合久久综合久久 | 精品日韩在线 |