打印
[技术问答]

RD8G403的SSI/USCI中UART通讯使用注意事项

[复制链接]
263|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szt1993|  楼主 | 2023-4-16 16:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 szt1993 于 2023-4-16 16:11 编辑

SSI/USCI中的 UART通讯使用注意事项
1) RD8G403的 SSI三合一中的 UART发送中断标志 TI和接收中断标志 RI在同一个寄存器上, 此寄存
器不能位操作,所以在清除 TI和 RI时会对整个寄存器进行与操作,这样当 UART进行全双工通信时
发送和接收中断有可能同时产生,或者是两者之间间隔时间很短,会出现 TI或者 RI被误清除导致中
断丢失的风险,因此在全双工通信应用场景中,通信需要有容错机制,不能因为某次中断丢失就导致
通讯崩溃,在发送数据后不能通过死等发送标志来判断发送是否完成,需要加入超时监测保证在一段
时间后可以退出等待 ;
2) RD8X36/37以及 RD8X05的 USCIX三合一接口中的 UART发送中断 标志 TI和接收中断标志 RI在
寄存器 US0CON0、 US1CON0和 USxCON0上 由于 US0CON0、 US1CON0和 USxCON0寄存器
不能进行位操作,为了防止全双工通信过程中对 RI和 TI进行清零时两者相互影响, USCIX的 UART发送中断标志 TI和接收中断标志 RI的清除方式为 “写 1清零 ”,这样可以更好的实现全双工通信,而RI和 TI的清除不会相互影响,具体操作示范如下:

3) 对于通信,要特别注意通信双方的配合,通信逻辑要特别注意,要做好通信的错误冗余,不能因为某
一次或者是某几次通信错误就导致通信出现终止现象,建议在通信超过一定时间没有接收到正确的数
据后重新启动通信,重新启动通信包括通信相关的寄存器清零再重新配置,以及通信使用到的一些变
量,包含数据缓存数组,以及计数的相关变量都要进行清零,以保证通信逻辑出错后重新启动通信,
可以使通信从最原始状态开始运行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

292

主题

2386

帖子

5

粉丝