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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

STM32定時(shí)器的應(yīng)用

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年05月01日   【字體:

 一:STM32F106 一共有11個(gè)定時(shí)器  2個(gè)高級(jí)定時(shí)器,4個(gè)普通定時(shí)器,2個(gè)基本定時(shí),2個(gè)看門狗,和一個(gè)滴答定時(shí)器

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

  在配置前我們要添加定時(shí)器的庫(kù)函數(shù) stm32f10x_tim.c

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

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

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

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

}

 2:配置定時(shí)器時(shí)鐘

 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

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

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

個(gè)頻率后產(chǎn)生個(gè)更新或者中斷 ( 也是說(shuō)定時(shí)時(shí)間到 )

 

定時(shí)器時(shí)間計(jì)算:

每次進(jìn)入中斷服務(wù)程序間隔時(shí)間為((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;      // 時(shí)間分割值
 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);             // 初始化定時(shí)器 
 TIM_ClearFlag(TIM3,TIM_FLAG_Update);                        //清除定時(shí)器中斷標(biāo)志 
 TIM_Cmd(TIM3, ENABLE);                                      // 4:使能定時(shí)器
 TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);                  // 打開中斷 溢出中斷 5:使能中斷

四:在主函數(shù)運(yùn)行時(shí)調(diào)用這三個(gè)函數(shù)對(duì)定時(shí)器進(jìn)行配置即可。

 

五:定時(shí)中斷函數(shù)的執(zhí)行

 

  TIME3的定時(shí)中斷函數(shù)的執(zhí)行在中斷向量表中,即  stm32f10x_it.c 文件中。

   因?yàn)槭褂玫暮瘮?shù)庫(kù)版本不同有的stm32f10x_it.c中給出了void TIM3_IRQHandler(void) {}函數(shù),只需要我們添加相應(yīng)的中斷服務(wù)程序即可,如果stm32f10x_it.c文件中沒(méi)有這個(gè)函數(shù)我們就自己創(chuàng)建一個(gè)同名函數(shù)即可。

如:

 這個(gè)例子是判斷中斷標(biāo)志位是否溢出來(lái)進(jìn)入中斷,如果溢出就執(zhí)行中斷服務(wù)子程序,特別要注意的是在中斷服務(wù)執(zhí)行前或者執(zhí)行后一定要清楚中斷標(biāo)志位,以免影響后面中斷的進(jìn)入。

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

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 香蕉视频久久 | 这里只有精品在线观看 | 中文字幕在 | 国产免费av在线 | 91成人免费版 | 美女视频福利 | aaa黄色 | 三级黄色网址 | 手机av在线播放 | 成人永久免费视频 | 深夜福利影院 | 又色又爽又黄gif动态图 | 久久中文视频 | 99精品久久久| 91午夜精品亚洲一区二区三区 | 成人一区二区三区 | 在线免费观看av片 | 91精品久久香蕉国产线看观看 | 欧美成人一级 | 色婷婷精品 | 国产欧美日韩在线 | 丰满少妇高潮在线观看 | 欧美黄色一区二区 | 国产精品日韩在线 | 午夜影院在线观看 | 国产美女自拍 | 久久久久免费视频 | 天美传媒在线观看 | 丰满少妇av | 国产精品aaa | 日韩毛片视频 | 精品福利在线观看 | 五月在线视频 | www操 | a天堂在线观看 | 91av免费| www.午夜| 亚洲国产网站 | 中文字幕免费在线 | 亚洲天堂av在线 | 天天干夜夜撸 |