亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: STM32驚天大BUG,定時器1,8,和定時器6初始化順序的BUG [打印本頁]

作者: liuchao626    時間: 2021-3-8 20:28
標題: STM32驚天大BUG,定時器1,8,和定時器6初始化順序的BUG
眾所周知,初始化先后順序是不會影響到while(1)循環體的,但是TIM1,8和TIM6之間的初始化先后順序,直接影響兩個定時器能否正常工作

例子,TIM8用作輸出4路PWM波,
          TIM6用作定時延時,
    初始化
         TIM6_init();
         TIM8_init();



于是,PC6,7,8,9,只有C9有波形,

調換位置之后,皆大歡喜,一切正常,

我使用了FreeRTOS,因為這個問題抓狂了2天2夜,結果就一順序產生的問題,深感恥辱,發帖紀念。

作者: Highnose    時間: 2021-3-8 23:03
我靠,還能這樣?  啥開發環境呀?
作者: 深圳xyz1    時間: 2021-3-9 09:51
這種情況很常見,LCD液晶顯示初始化順序調換一下就不能顯示!
作者: Nevergp    時間: 2021-3-9 11:58
多看看自己的代碼,畢竟STM32都是經過市場驗證的
作者: cliang223    時間: 2021-3-9 12:45
會不會其他地方有問題你沒發現
作者: 天地摩登恒    時間: 2021-3-9 14:00
會不會是 TIM6_init()的時鐘沒使能,到了  TIM8_init();才使能。
作者: liuchao626    時間: 2021-3-9 18:45
天地摩登恒 發表于 2021-3-9 14:00
會不會是 TIM6_init()的時鐘沒使能,到了  TIM8_init();才使能。

定時器8,6都是分開的,用的固件庫,這種錯誤檢查了好幾遍
作者: chanmk    時間: 2021-3-9 19:27
這個和順序沒關系吧
作者: chenxianyu    時間: 2021-3-9 20:55
你這個是stm32哪個型號的
作者: SPEAR    時間: 2021-3-10 01:35
定時器6用到中斷了嗎?如果用到并且沒有在定時器初始化函數里面清空中斷標志位,main函數里初始化的時候會自動執行一次定時器中斷,進入中斷函數,如果正好中斷里有未初始化的內容,程序就會卡死在中斷里, 你的TIM6_init()中斷函數里肯定有TIM8相關內容。程序進入不了定時器8初始化函數里,也就是無法產生pwm波。你調換了順序,其實是先執行了tim8初始化,再執行tim6初始化,自動進入一次中斷,這時候中斷服務函數恰好能正常執行。肯定是程序的問題,不可能是bug
作者: Highnose    時間: 2021-3-10 09:34
Nevergp 發表于 2021-3-9 11:58
多看看自己的代碼,畢竟STM32都是經過市場驗證的

坑多的很,只是你不知道
作者: Highnose    時間: 2021-3-10 09:39
SPEAR 發表于 2021-3-10 01:35
定時器6用到中斷了嗎?如果用到并且沒有在定時器初始化函數里面清空中斷標志位,main函數里初始化的時候會 ...

比較靠譜的分析,樓主試試看
作者: kidxpp    時間: 2021-3-10 19:03
具體是哪個型號
作者: xdh568470911    時間: 2021-3-12 13:30
個人覺得,和順序沒有太大的關系,除非是你的一些局部變量沒有初始化,或者其他的一些BUG導致,你可以貼出代碼給大家瞅瞅。。
作者: liuchao626    時間: 2021-3-19 21:19
SPEAR 發表于 2021-3-10 01:35
定時器6用到中斷了嗎?如果用到并且沒有在定時器初始化函數里面清空中斷標志位,main函數里初始化的時候會 ...
  1. void TIM6_IRQHandler(void)
  2. {
  3.         if(TIM_GetITStatus(TIM6,TIM_IT_Update)!=RESET)
  4.         {
  5.                 if(Global_time_ms>0){
  6.                         Global_time_ms--;
  7.                 }
  8. //                if(Global_time_us>0){
  9. //                        Global_time_us--;
  10. //}
  11. //                if(Infraredcnt<300){Infraredcnt++;} else{read_all_status();Infraredcnt=0;}
  12.                 TIM_ClearITPendingBit(TIM6,TIM_FLAG_Update);
  13.         }
  14. }
復制代碼

這個延時函數就沒用到他,在閑置,代碼維護過了好長時間,可能就是大哥你說的這個情況。
不過學到了,初始化會自動執行一次中斷
作者: liuchao626    時間: 2021-3-19 21:20
kidxpp 發表于 2021-3-10 19:03
具體是哪個型號

103ZET6
作者: 單片機愛好者223    時間: 2021-7-14 21:25
肯定是代碼問題,不用多想~~~~~
作者: 醉酒人    時間: 2021-7-18 00:53
我也出現了類似的情況    TIM1和TIM3的初始化順序不能反   TIM1要在前




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1