8-HC32F460(華大單片機)-串口(定時器空閑檢測)


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnHC32F460" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

串口空閑中斷

串口發送數據的時候都是一條一條發送的.

單片機判斷接收完一條數據一般做法是:

在接收數據的過程中,如果超過一段時間沒有新的數據過來,就認為前面接收完了一條數據.

然后再去處理數據.

 

關於此單片機的空閑中斷

感覺這單片機的功能制作是總結了項目經驗之后做的.

這個單片機使用的是單獨的定時器去配置超時時間, 

定時器0的第一路的A通道作為串口1的串口接收超時定時器

定時器0的第一路的B通道作為串口2的串口接收超時定時器

定時器0的第二路的A通道作為串口3的串口接收超時定時器

定時器0的第二路的B通道作為串口4的串口接收超時定時器

 

 

 

 

直接看程序

1.我使用的是串口1. 首先看定時器配置

配置定時器0的第一路的通道A

我設置的定時時間是10ms左右, 那么串口空閑接收超時時間就是10ms

最后是啟動硬件觸發(啟動硬件觸發其實內部默認就是串口1去觸發)

 

 

2.串口配置

串口和先前的例程沒有大的區別,但是要注意需要讓其輸出時鍾信號

 

 

然后呢加上串口空閑中斷

 

 

 

我在中斷里面是設置led翻轉

 

 

 

測試

把這節程序下載到開發板,然后使用調試助手給單片機串口1發送數據

會觀察到,每次發送完數據,開發板上的小燈就會翻轉

 

 

提示

定時器0以后就不要使用了哈....

用別的定時器吧

 

其它串口例程參考官方例程(后面不一定寫串口中斷發送和DMA的例程)

 


免責聲明!

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



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