今天除錯了一天stm32程式走了很多彎路,還好最後完全走通,除錯過程中的一些經驗總結如下:
1、不要完全相信編譯器,很多時候可能你只是少了乙個分號或者括號,編譯器可能給你報一大堆不相關的錯誤,這時候如果想著乙個個去改的話顯然找不到正確答案。因此為了保險起見原先編譯成功的程式在改動的時候,每改動一次就對相應的檔案編譯一次,這樣可以避免一下子改動很多最後一編譯出現很多錯誤不好定位。第一步編譯只是編譯當前檔案,只有在build的時候才會對所有改動的檔案重新編譯,因此等到build的時候發現錯誤很多時候並不能很好定位。
2、加入功能時要注意改動幾個地方;首先是/stm32f10x_conf.h中相應的標頭檔案有沒有去掉注釋,這一點很多人可能不會忘記,其次是使用某些外設需要配置對應的復用埠,再去初始化相應外設,最後記得使能和開啟相應的時鐘。
3、時鐘使能包括以下幾個方面
使能rcc_ahbperiphclockcmd,比如需要使用fsmc就要rcc_ahbperiphclockcmd(rcc_ahbperiph_fsmc, enable);
使能相應的外設,包括使能相應的埠時鐘,復用的時候還要使能afio復用時鐘。
4、初始化之後可以軟體模擬**,通過檢視相應的暫存器看看配置的功能有沒有工作,這樣可以及時找出問題。
5、充分參考韌體庫中給出的例程,雖然韌體庫中的很多例程比較簡單,而且是針對官方評估版,但是當除錯中遇到問題的時候還是值得仔細讀讀的。
暫時先寫那麼多,後面再補充。
STM32經驗心得
相關經驗及心得如下 摘要 1.在配置usart的tx完成中斷後,在沒有發數的情況下自動進入tx完成中斷函式。2 在tx配置完成後,相應的tc標誌位會自動置1,隨後就進入了tx完成中斷。3.相關配置程式編寫無誤,並已經開啟時鐘,依舊無法配置相關gpio及外設 4.adc通道 分為規則組和注入組 5.修...
STM32經驗心得(一)
摘要 1.在配置usart的tx完成中斷後,在沒有發數的情況下自動進入tx完成中斷函式。2 在tx配置完成後,相應的tc標誌位會自動置1,隨後就進入了tx完成中斷。3.相關配置程式編寫無誤,並已經開啟時鐘,依舊無法配置相關gpio及外設 4.adc通道 分為規則組和注入組 5.修改定時器的預裝值後,...
STM32除錯PID心得
近來從機械轉為電子開始除錯底盤,底盤的控制程式已寫好,我要做的工作主要是調引數。看過很多pid的書,理論基本一樣響應慢就加大p值,而在速度控制中基本都不用d即微分,因為電機速度太快了,d值起不了作用的。相應的誤差較大時則增大i值。道理就是這麼個理兒。但可能很多人都不知道p值是有兩個的乙個加速用,乙個...