介紹
串口空閑中斷主要是在數據接收過程中出現接收不到連續數據的現象時,用來觸發給主函數流程的。一般會用在不定長的數據包接收或者需要實時數據接收反應的場合。
RA雖然沒有集成硬件的串口空閑中斷功能,但是可以通過定時器+ELC,在不做任何硬件修改的情況下實現串口通信空閑中斷功能。
內容
主要原理是通過串口接收(RXI)的狀態來觸發定時器啟動和定時器計數器清除。當兩個字節數據間隔時間超出一定數值時來觸發定時器中斷(空閑中斷)。由于RA芯片內置ELC功能,定時器的啟動和清除觸發是通過硬件來實現的,軟件無需做任何處理。
FSP具體配置步驟如下:
1. 配置串口:按照實際串口使用要求做配置,留意RX/TX的中斷回調函數是不包括空閑中斷的。
2. 添加ELC:配置十分簡單,直接添加ELC Stack就可以。
3. 添加定時器(GPT)
這里需要做下列3點的配置:
A. 配置定時器中斷回調函數(空閑中斷函數入口)。
B. 定時器輸入的啟動源配置為SCIx RXI,這里是配置通過ELC在串口接收到數據后來觸發啟動定時器的。
C. 定時器輸入的清除源配置為SCIx RXI,這里是配置通過ELC在串口接收到數據后同時清除上次定時器計數器的值,也是相當于在一定時間內如果沒有接收到數據(即沒有產生RXI中斷),定時器由于沒有清除的動作,會觸發出中斷(即空閑中斷)。
4. 軟件代碼應用中,空閑中斷標志值g_uart0_rx_end是在定時器中斷callback函數中置為“1”的。主循環同步判斷這個全局變量值g_uart0_rx_end的標志位就能知道是否有空閑中斷出現,或者也可以直接在定時器的回調函數內做空閑中斷處理。
-
mcu
+關注
關注
146文章
17123瀏覽量
350991 -
瑞薩
+關注
關注
35文章
22308瀏覽量
86240 -
中斷
+關注
關注
5文章
898瀏覽量
41470 -
串口通信
+關注
關注
34文章
1624瀏覽量
55508
發布評論請先 登錄
相關推薦
評論