MSP430FR5994如何判断UART发送完成?

[复制链接]
2775|19
 楼主| gaopan2002 发表于 2017-8-1 08:33 | 显示全部楼层 |阅读模式
本帖最后由 gaopan2002 于 2017-8-1 08:35 编辑

用MSP430FR5994的UART做RS485通信,除了收发数据口外,还需要用一普通I/O口控制RS485接口芯片的收发切换,一般发送完数据之后(连续几个字节),就要把接口芯片置为接收状态,所以对于MCU来讲,需要知道发送的数据什么时候发送完成(准确的说就是,数据完全从移位寄存器中全部移出)。
查了一下芯片的用户手册,应该是判断UCTXCPTIFG,但是Erratasheet里头又说Erratasheet有bug,那怎么办?难道要通过延时的方法来解决吗?但是如果波特率可变的话,这个延时时间又不好把握。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dirtwillfly 发表于 2017-8-1 09:48 | 显示全部楼层
多个字符传输的时候会发生这个bug,你避开这种操作方式就好了
gygp 发表于 2017-8-3 16:50 | 显示全部楼层
发送完成不是你的代码里面自己写的吗?
chenci2013 发表于 2017-8-3 16:51 | 显示全部楼层
考虑的是使用发送中断吗?
biechedan 发表于 2017-8-3 16:51 | 显示全部楼层
while (!(UCA1IFG&UCTXIFG));
wangdezhi 发表于 2017-8-3 16:52 | 显示全部楼层
现在使用fifo话,不好判断发送是否完成
isseed 发表于 2017-8-3 16:53 | 显示全部楼层
这个发送有相关的标志标志位的。UCA1IFG
xietingfeng 发表于 2017-8-3 16:53 | 显示全部楼层
使用延时的话,最大波特率可以根据你的波特率计算。
suzhanhua 发表于 2017-8-3 16:54 | 显示全部楼层
通过发送完成标志位。
mituzu 发表于 2017-8-3 16:55 | 显示全部楼层
不使用中断,发送完成之后可以把接口芯片置为接收状态
sanfuzi 发表于 2017-8-3 16:55 | 显示全部楼层
RS485通信例程这么多,参考一下。
gygp 发表于 2017-8-3 16:55 | 显示全部楼层
UARTPutchar
然后就置位控制信号线就行了。
chenci2013 发表于 2017-8-3 16:55 | 显示全部楼层
这个uart发送完成标志不行吗
biechedan 发表于 2017-8-3 16:55 | 显示全部楼层
这个没有问题,以前都是这些写的代码。
wangdezhi 发表于 2017-8-3 16:55 | 显示全部楼层
485正常控制代码就是释放相关的代码完成就可以。
isseed 发表于 2017-8-3 16:55 | 显示全部楼层
以前都是通过UCA1IFG判断的。
xietingfeng 发表于 2017-8-3 16:55 | 显示全部楼层
正常的115200 就是1/10000 就能能完成。
suzhanhua 发表于 2017-8-3 16:55 | 显示全部楼层
UCTXCPTIFG有什么问题?
mituzu 发表于 2017-8-3 16:55 | 显示全部楼层
这个没有这么复杂,以前都是这么使用通信的。
sanfuzi 发表于 2017-8-3 16:55 | 显示全部楼层
最简单的就是使用串口通信技术
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部