打印

MSP430FR5994如何判断UART发送完成?

[复制链接]
2063|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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 | 只看该作者
考虑的是使用发送中断吗?

使用特权

评论回复
5
biechedan| | 2017-8-3 16:51 | 只看该作者
while (!(UCA1IFG&UCTXIFG));

使用特权

评论回复
6
wangdezhi| | 2017-8-3 16:52 | 只看该作者
现在使用fifo话,不好判断发送是否完成

使用特权

评论回复
7
isseed| | 2017-8-3 16:53 | 只看该作者
这个发送有相关的标志标志位的。UCA1IFG

使用特权

评论回复
8
xietingfeng| | 2017-8-3 16:53 | 只看该作者
使用延时的话,最大波特率可以根据你的波特率计算。

使用特权

评论回复
9
suzhanhua| | 2017-8-3 16:54 | 只看该作者
通过发送完成标志位。

使用特权

评论回复
10
mituzu| | 2017-8-3 16:55 | 只看该作者
不使用中断,发送完成之后可以把接口芯片置为接收状态

使用特权

评论回复
11
sanfuzi| | 2017-8-3 16:55 | 只看该作者
RS485通信例程这么多,参考一下。

使用特权

评论回复
12
gygp| | 2017-8-3 16:55 | 只看该作者
UARTPutchar
然后就置位控制信号线就行了。

使用特权

评论回复
13
chenci2013| | 2017-8-3 16:55 | 只看该作者
这个uart发送完成标志不行吗

使用特权

评论回复
14
biechedan| | 2017-8-3 16:55 | 只看该作者
这个没有问题,以前都是这些写的代码。

使用特权

评论回复
15
wangdezhi| | 2017-8-3 16:55 | 只看该作者
485正常控制代码就是释放相关的代码完成就可以。

使用特权

评论回复
16
isseed| | 2017-8-3 16:55 | 只看该作者
以前都是通过UCA1IFG判断的。

使用特权

评论回复
17
xietingfeng| | 2017-8-3 16:55 | 只看该作者
正常的115200 就是1/10000 就能能完成。

使用特权

评论回复
18
suzhanhua| | 2017-8-3 16:55 | 只看该作者
UCTXCPTIFG有什么问题?

使用特权

评论回复
19
mituzu| | 2017-8-3 16:55 | 只看该作者
这个没有这么复杂,以前都是这么使用通信的。

使用特权

评论回复
20
sanfuzi| | 2017-8-3 16:55 | 只看该作者
最简单的就是使用串口通信技术

使用特权

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

本版积分规则

3

主题

11

帖子

0

粉丝