[MCU] 发送的数据0x00后面的数据都丢失了

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

void MSP430_VOID_Rx485SendBytes( uchar *ptr ) {

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

                while ( !( IFG1 & UTXIFG0 ) );                         // TX缓存空闲?
                TXBUF0 = *ptr++;                                               // 发送数据
        }
        while ( !( IFG1 & UTXIFG0 ) );
}
kangzj 发表于 2020-8-28 23:09 | 显示全部楼层
你发送的是数据又不是字符串!为什么要用‘\0’呢?
wangzsa 发表于 2020-8-28 23:12 | 显示全部楼层
除非你把发送的数据放到数组里面并且知道其长度!
zhuhuis 发表于 2020-8-28 23:16 | 显示全部楼层
只发送16进制的数据,怎么做呢
pengf 发表于 2020-8-28 23:19 | 显示全部楼层
要知道长度,长度为多少就发多少
airwill 发表于 2020-8-31 19:23 | 显示全部楼层
是不是中断引起的延迟导致这里的  while() 不成立?
pengf 发表于 2020-9-1 19:21 | 显示全部楼层
‘\0’是什么作用
ousj 发表于 2020-9-1 19:24 | 显示全部楼层
while( (*ptr != '\0') )有问题吧。
wangpe 发表于 2020-9-1 19:28 | 显示全部楼层
!= '\0'才发送的。
tian111 发表于 2020-9-1 19:31 | 显示全部楼层

字符串判断的问题。
renyaq 发表于 2020-9-1 19:35 | 显示全部楼层
'\0'这个字符串呢
liuzaiy 发表于 2020-9-1 19:40 | 显示全部楼层
字符串的结尾标志为'\0'
lium 发表于 2020-9-1 19:44 | 显示全部楼层
改变一种发送方式。
hanwe 发表于 2020-9-1 19:47 | 显示全部楼层
数据都丢失还是不发送呢
chuxh 发表于 2020-9-1 19:53 | 显示全部楼层
串口发送你看看网上怎么操作的。
zwll 发表于 2020-9-1 20:00 | 显示全部楼层
00这个字符有问题的。
pengf 发表于 2020-9-1 20:03 | 显示全部楼层
使用空判断试试看。
pangb 发表于 2020-9-1 20:07 | 显示全部楼层
建议后期修改为使用数量判断的。
guoyt 发表于 2020-9-1 20:11 | 显示全部楼层
该修改为空操作的。
zhuww 发表于 2020-9-1 20:14 | 显示全部楼层
使用for循环吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

900

主题

12190

帖子

3

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