瑞萨RA MCU串口通信空闲中断

电子说

1.2w人已加入

描述

 

介绍

串口空闲中断主要是在数据接收过程中出现接收不到连续数据的现象时,用来触发给主函数流程的。一般会用在不定长的数据包接收或者需要实时数据接收反应的场合。

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中断),定时器由于没有清除的动作,会触发出中断(即空闲中断)。

mcu

4. 软件代码应用中,空闲中断标志值g_uart0_rx_end是在定时器中断callback函数中置为“1”的。主循环同步判断这个全局变量值g_uart0_rx_end的标志位就能知道是否有空闲中断出现,或者也可以直接在定时器的回调函数内做空闲中断处理。

mcu

来源:瑞萨MCU小百科
 

  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分