日常入坑之STM32串列埠空閒中斷問題

2021-10-07 19:15:13 字數 465 閱讀 4475

前言:

在使用小熊派開發板stm32l4微控制器開發藍芽驅動時遇到的了乙個非常非常奇怪的問題,當然也怪學術不精,具體問題描述如下:使用stm32l4微控制器,藍芽為串列埠驅動,選擇微控制器的串列埠3,為啥選擇這個呢,這得問問我那脾氣很臭的硬體工程師,串列埠配置為dma空閒中斷,使用stmcube生成的**,**生成後基本初始化已經自動完成,在外設比較少的情況下執行正常,但是當把外設加多的時候,比如初始化了adc、tim、spi等時候,程式在剛開始執行就進入硬體故障中斷,hardfault_handler();糾結了好幾天,各種**單步除錯都不行,折磨的我是要死要活的,**的時候也是很亂,什麼時候跳進去的也不穩定,具體**結構如下:

/* initialize all configured peripherals */

mx_gpio_init()

;mx_dma_init()

;mx_usart1_

STM32串列埠空閒中斷idle說明

1.空閒中斷的觸發機制 空閒中斷是在監測到資料接收後 即串列埠的rxne位被置位 開始檢測,當匯流排上在乙個位元組對應的週期內未再有新的資料接收時,觸發空閒中斷idle位被硬體置1.2.idel位清零實現 檢視stm32參考手冊,要注意idel位的清零是通過先讀取usart sr,再讀取usart ...

關於STM32串列埠空閒中斷的問題

1.空閒中斷是接受資料後出現乙個byte的高電平 空閒 狀態,就會觸發空閒中斷.並不是空閒就會一直中斷,準確的說應該是上公升沿 停止位 後乙個byte,如果一直是低電平是不會觸發空閒中斷的 會觸發break中斷 2.關於第二點有要鋪墊的三個情況,datasheet中 當一空閒幀被檢測到時,其處理步驟...

stm32串列埠通訊

通訊方式 1 同步通訊 帶時鐘同步訊號傳輸 spi,iic等 2 非同步通訊 不帶時鐘用途訊號 usrt,單匯流排 stm32串列埠引腳表 串口號 rxd txd 1 pa10 pa9 2 pa3pa2 3 pb11 pb10 4 pc11 pc10 5 pd2pc12 通訊過程 接收過程 由rx入...