[应用相关] 串口发送数据丢失的问题

[复制链接]
704|15
 楼主| handleMessage 发表于 2020-12-4 19:02 | 显示全部楼层 |阅读模式
写了一个149串口发送的程序,测试的时候发现发送的数据0x00后面的数据都丢失了,比如发送 11 22 33 00 44 55只能接收到11 22 33后面的数据就没了,求大神解答一下这是为啥呢?

void Rx485SendBytes( uchar *ptr ) {

        while( (*ptr != '\0') ) {

                while ( !( IFG1 & UTXIFG0 ) );                         // TX缓存空闲?
                TXBUF0 = *ptr++;                                               // 发送数据
        }
        while ( !( IFG1 & UTXIFG0 ) );
}
zhouhuanの 发表于 2020-12-4 19:03 | 显示全部楼层
你发送的是数据又不是字符串!为什么要用‘\0’呢?
wanglaojii 发表于 2020-12-4 19:08 | 显示全部楼层
除非你把发送的数据放到数组里面并且知道其长度!
laozhongyi 发表于 2020-12-4 19:08 | 显示全部楼层
只发送16进制的数据,这个怎么做呢?
Edisons 发表于 2020-12-4 19:13 | 显示全部楼层

要知道长度,长度为多少就发多少吧
_gege 发表于 2020-12-4 19:14 | 显示全部楼层
while( (*ptr != '\0') )有问题吧。
Edisons 发表于 2020-12-4 19:18 | 显示全部楼层
看上去像是字符串判断的问题。
Listate 发表于 2020-12-4 19:19 | 显示全部楼层
字符串的结尾标志为'\0'
Mozarts 发表于 2020-12-4 19:24 | 显示全部楼层
数据都丢失还是不发送呢?
xia00 发表于 2020-12-4 19:25 | 显示全部楼层
串口发送可以看看网上怎么操作的。
hfdy01 发表于 2020-12-4 19:31 | 显示全部楼层
00这个字符有问题的吧。
CallReceiver 发表于 2020-12-4 19:31 | 显示全部楼层
建议后期修改为使用数量判断的。
CallReceiver 发表于 2020-12-4 19:34 | 显示全部楼层

使用for循环吧。11 22 33 00 44 55是字符串吗?
boy1990 发表于 2020-12-4 19:36 | 显示全部楼层
如果是字符肯定是有问题的。
sourceInsight 发表于 2020-12-4 19:53 | 显示全部楼层
如果是字符肯定是有问题的。
feiqi1 发表于 2020-12-4 19:54 | 显示全部楼层
对应的字符是(Null),其实就是‘\0’,即空字符。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

166

主题

1689

帖子

4

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