英飞凌
直播中

凤毛麟角

8年用户 918经验值
私信 关注

请问xmc7000系列UAR外设是否支持接收空闲中断?

我使用xmc7100 SCU外设 用做Uart通讯,需要实现接收不定长数据帧。由于没有接收数据线空闲中断。想请教一下在xmc7100上,除了采用timer+polling方式外,是否还有其他方式可以实现这个功能。

回帖(1)

微风挽雨

2024-6-3 14:13:10
XMC7000系列的UAR(Universal Asynchronous Receiver/Transmitter)外设确实支持接收空闲中断。在XMC7100微控制器中,SCU(System Control Unit)外设也可以用来实现UART通信。为了实现接收不定长数据帧,我们可以采用以下步骤:

1. 配置UAR外设:首先,需要配置UAR外设的基本参数,如波特率、数据位、停止位和奇偶校验等。这些参数可以通过设置UAR的控制寄存器来实现。

2. 启用接收空闲中断:为了实现接收不定长数据帧,我们需要启用接收空闲中断。这可以通过设置UAR的中断控制寄存器来实现。具体来说,需要设置接收空闲中断使能位(RXFIFO.FLCTRL.EN)。

3. 配置中断优先级:在XMC7100中,需要配置中断优先级以确保中断能够正确触发。这可以通过设置NVIC(Nested Vectored Interrupt Controller)的优先级寄存器来实现。

4. 编写中断服务函数:编写一个中断服务函数,用于处理接收空闲中断。在该函数中,可以检查接收到的数据帧长度,并根据需要进行处理。

5. 启动UAR外设:在配置完UAR外设和中断后,需要启动UAR外设以开始通信。这可以通过设置UAR的控制寄存器中的启动位(UAR_GCR.START)来实现。

6. 接收数据:在中断服务函数中,可以不断检查接收到的数据帧,并根据需要进行处理。由于启用了接收空闲中断,当接收到的数据帧之间出现空闲时,中断服务函数会被触发。

通过以上步骤,我们可以在XMC7100上实现接收不定长数据帧的功能,而无需使用timer+polling方式。这种方式可以提高通信效率,降低CPU占用率。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分