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

cathy的头像
cathy 发布于:周一, 02/28/2022 - 14:38 ,关键词:

介绍

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

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

“RA串口通信空闲中断"

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

“RA串口通信空闲中断"

来源:瑞萨MCU小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 651