1. 程式人生 > >STM32學習之啟動程式碼很重要! UART4應用

STM32學習之啟動程式碼很重要! UART4應用

在寫一個人機介面,由於硬體同事布板的問題,必須要用到串列埠4,先開始我還覺得沒什麼,就是把USART1改成4以及改下開啟時鐘和配置引腳。

 

但是事實證明我的想法是多麼愚蠢,調了整整2天,UART4傳送很好,但是就是在接收時死活的卡在中斷之前,就會進入HardFaultException B HardFaultException。真是百思不得其解,我就一步步除錯跟蹤,也沒有發現任何問題,UART4的配置都是正確的,引腳也都沒問題。這兩天真是除錯的快崩潰了。在網上查詢該問題,大家也都沒有答案,有些人甚至直接說UART4不能用,說心裡話我不相信,別個STM那麼大的公司,會推出不能用的功能?

 

在我最無助的時候,我突然想起我們大學老師的一句話,中斷出問題,就多看看啟動程式碼的中斷向量部分,多去理解。事實證明老師是對的,我花了半天的時間仔細的看了我的啟動程式碼,乖乖啟動程式碼裡面居然沒有

IMPORT UART4_IRQHandler

IMPORT UART5_IRQHandler

DCD UART4_IRQHandler

DCD UART5_IRQHandler

而串列埠1、2、3都有。於是我加上了以上程式碼,串列埠成功的進入中斷,並且接收到了資料。

 

搞了STM32已經快3個月了,第一次仔細的看了啟動程式碼,之前一直認為啟動程式碼就是現成的,所以從來都不去看,覺得看了也沒用。事實證明這樣的想法是愚蠢的。