久久久久久久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))); 
 
 
 }
 
 }

關閉窗口

相關文章

主站蜘蛛池模板: 国产九九精品视频 | 国产视频第一页 | 911精品美国片911久久久 | 9999久久| 日日夜夜草 | 国产丝袜一区二区三区免费视频 | 国产乱码精品一区二区三区忘忧草 | 91在线第一页 | 一区二区视频 | 欧美日韩三级 | 国产精品久久毛片av大全日韩 | 狠狠入ady亚洲精品经典电影 | 亚洲精品91 | 国产在线观看不卡一区二区三区 | 亚洲九九 | 在线观看免费福利 | 国产成人精品一区二区三区四区 | 欧美中文字幕一区二区三区亚洲 | 亚洲国产日本 | 欧美性video 精品亚洲一区二区 | 日本福利片| 91色在线| 久久久久久亚洲精品 | 超级碰在线 | 亚洲一区二区三区在线视频 | 色综合成人网 | 做a的各种视频 | 色综合视频 | 久久专区 | 国产黄色麻豆视频 | 91色视频在线观看 | 日韩网站免费观看 | 国产精品极品美女在线观看免费 | 欧美高清视频 | 国产精品免费播放 | 国产成人影院 | 天天操天天干天天曰 | 极品电影院| 中文字幕在线观看一区 | 免费观看一级特黄欧美大片 | 中文字幕精品视频 |