STM32學習之啟動代碼很重要!
最近在寫一個人機界面,由于硬件同事布板的問題,必須要用到串口4,先開始我還覺得沒什么,就是把USART1改成4以及改下開啟時鐘和配置引腳。
但是事實證明我的想法是多么愚蠢,調(diào)了整整2天,UART4發(fā)送很好,但是就是在接收時死活的卡在中斷之前,就會進入HardFaultException B HardFaultException。真是百思不得其解,我就一步步調(diào)試跟蹤,也沒有發(fā)現(xiàn)任何問題,UART4的配置都是正確的,引腳也都沒問題。這兩天真是調(diào)試的快崩潰了。在網(wǎng)上查詢該問題,大家也都沒有答案,有些人甚至直接說UART4不能用,說心里話我不相信,別個STM那么大的公司,會推出不能用的功能?
在我最無助的時候,我突然想起我們大學老師的一句話,中斷出問題,就多看看啟動代碼的中斷向量部分,多去理解。事實證明老師是對的,我花了半天的時間仔細的看了我的啟動代碼,乖乖啟動代碼里面居然沒有
IMPORT UART4_IRQHandler
IMPORT UART5_IRQHandler
DCD UART4_IRQHandler
DCD UART5_IRQHandler
而串口1、2、3都有。于是我加上了以上代碼,串口成功的進入中斷,并且接收到了數(shù)據(jù)。
搞了STM32已經(jīng)快3個月了,第一次仔細的看了啟動代碼,之前一直認為啟動代碼就是現(xiàn)成的,所以從來都不去看,覺得看了也沒用。事實證明這樣的想法是愚蠢的。
發(fā)了下牢騷,但是真心希望大家不要忽略了啟動代碼。也真心希望以上解決方法能幫助到你。
編輯:admin 最后修改時間:2018-05-18