關於STM32空閑中斷


在使用串口接受字符串時,可以使用空閑中斷(IDLEIE置1,即可使能空閑中斷),這樣在接收完一個字符串,進入空閑狀態時(IDLE置1)便會激發一個空閑中斷。在中斷處理函數,我們可以解析這個字符串。

需要注意的是,IDLE標志位需要軟件清零,否則由於會不斷進入中斷,而使正常程序無法運行。當再次收到數據時(即RXNE再次置1),等到空閑便會重新進入中斷。

在STM32F4中,IDLE標志位清零的過程是:先讀SR,再讀DR寄存器。

而在STM32L0中, idle標志清除的過程是:對ICR寄存器的IDLECF位寫1

切記使用正確的方式清零IDLE標志位,不同系列的清零方式有可能不同!在移植時需要注意,我將F4的程序移植到L0上時,忽略了這個問題找了很久才找到問題根源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM