<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STM32定時(shí)器的小問題總結(jié)

          STM32定時(shí)器的小問題總結(jié)

          作者: 時(shí)間:2016-11-19 來源:網(wǎng)絡(luò) 收藏

          stm32定時(shí)器用的時(shí)候是根據(jù)原子開發(fā)版的程序直接應(yīng)用的,用的時(shí)候也沒有具體的考量,但是在用的時(shí)候出現(xiàn)了一個(gè)問題,就是定時(shí)器的中斷在設(shè)置之后,并沒有打開定時(shí)器但是程序執(zhí)行到這里就會(huì)進(jìn)入中斷,如果中斷中有其他一些硬件功能,例如在定時(shí)器中發(fā)送一些數(shù)據(jù),而這個(gè)時(shí)候串口并沒有初始化時(shí),就是出現(xiàn)程序死在這里的問題。通過網(wǎng)上查找資料發(fā)現(xiàn)是定時(shí)器中斷標(biāo)志未清除的問題,調(diào)用TIM_ClearFlag函數(shù)之后就不會(huì)發(fā)生以上問題了。看來在硬件配置時(shí)一定要注意這個(gè)問題,不管是其他外圍設(shè)備的初始化都需要注意。之前看到SPI、USART等初始化的時(shí)候會(huì)經(jīng)常加上XXX_DeInit()函數(shù),看來也并非多余,對于硬件初始化是很有必要的,紀(jì)盡管在手冊上看到這些值的初始值都是0,但是在應(yīng)用中還是出現(xiàn)這種問題,因此今后在應(yīng)用中一定的多加注意。具體初始化程序如下:

          本文引用地址:http://www.ex-cimer.com/article/201611/318483.htm

          void TIM2_Init(void)
          {
          TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
          NVIC_InitTypeDef NVIC_InitStructure;


          RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //時(shí)鐘使能
          TIM_DeInit(TIM2);
          //定時(shí)器TIM2初始化
          TIM_TimeBaseStructure.TIM_Period = 7199; //設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值
          TIM_TimeBaseStructure.TIM_Prescaler =9; //設(shè)置用來作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值 輸出周期為T=(Prescaler+1)(Period+1)/72M
          TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //設(shè)置時(shí)鐘分割:TDTS = Tck_tim
          TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上計(jì)數(shù)模
          TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根據(jù)指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位

          // TIM_ITConfig(TIM2,TIM_IT_UpdateTIM_IT_Trigger,ENABLE ); //使能指定的TIM2中斷,允許更新中斷
          TIM_ClearFlag(TIM2 , TIM_FLAG_Update); //清除中斷標(biāo)志
          TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE ); //使能指定的TIM2中斷,允許更新中斷


          //中斷優(yōu)先級NVIC設(shè)置
          NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; //TIM2中斷
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //先占優(yōu)先級3級 優(yōu)先級設(shè)置最低
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //從優(yōu)先級3級
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
          NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器

          }

          這是定時(shí)器的更新中斷,還有定時(shí)捕獲模式等,這些可以更加靈活的用于一些需要定時(shí)器的問題中,



          關(guān)鍵詞: stm32定時(shí)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();