您尚未登录。

楼主 # 昨天 06:45:06

lqcfly
会员
注册时间: 2024-05-10
已发帖子: 8
积分: 50

Luban Lite 串口轮循发送函数,没有发送完成就函数返回,导致485芯片发送数据不完整的问题总结

使用芯片:D211BBV
使用Luban Lite SDK版本:V1.2.0
串口模式:RS232 normal


原因分析:
串口轮循发送数据函数返回时,实际串口发送数据并没有结束。如果此时控制485芯片收发引脚,会导致最后几个字节发送失败。原因是官方SDK中串口轮询发送函数发送数据没有检测数据是否发送完成导致的。
错误现象:
1.png

解决办法:   
调用hal_usart_flush函数,确保串口数据真正发送完成。

rt_device_write(serial1, 0, uart[1].tx_buf, uart[1].tx_len);
hal_usart_flush(serial1->user_data, USART_FLUSH_WRITE);

正常发送数据
2.png

最近编辑记录 lqcfly (昨天 07:21:27)

离线

楼主 #2 昨天 13:58:07

lqcfly
会员
注册时间: 2024-05-10
已发帖子: 8
积分: 50

Re: Luban Lite 串口轮循发送函数,没有发送完成就函数返回,导致485芯片发送数据不完整的问题总结

海石生风 说:

芯片支持RS-485硬件自动控制收发方向,即串口支持RS485模式。用硬件RS485-DE引脚不是更方便简单?

这个方式是可以,但是为了兼容以前的硬件和程序,没办法直接使用RS485模式

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn