2026 / 07 / 22
RA串口通信空闲中断

介绍

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

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的标志位就能知道是否有空闲中断出现,或者也可以直接在定时器的回调函数内做空闲中断处理。

文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信