串口发送数据丢失的问题

[复制链接]
 楼主| Rospiers 发表于 2018-6-30 15:43 | 显示全部楼层 |阅读模式
本帖最后由 Rospiers 于 2018-6-30 15:59 编辑

写了一个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 ) );
}

评论

0x00被误认为\0了  发表于 2018-7-1 21:16
Lewisnx 发表于 2018-6-30 16:00 | 显示全部楼层
你发送的是数据又不是字符串!为什么要用‘\0’呢?
CCompton 发表于 2018-6-30 16:18 | 显示全部楼层
除非你把发送的数据放到数组里面并且知道其长度!
Richardd 发表于 2018-6-30 16:25 | 显示全部楼层
只发送16进制的数据,怎么做呢
Mattheww 发表于 2018-6-30 16:44 | 显示全部楼层
要知道长度,长度为多少就发多少
Erichk 发表于 2018-6-30 16:54 | 显示全部楼层
‘\0’是什么作用
kkzz 发表于 2018-7-1 14:37 | 显示全部楼层
while( (*ptr != '\0') )有问题吧。
hudi008 发表于 2018-7-1 14:37 | 显示全部楼层
!= '\0'才发送的。
lzmm 发表于 2018-7-1 14:38 | 显示全部楼层
字符串判断的问题。
minzisc 发表于 2018-7-1 14:38 | 显示全部楼层
'\0'这个字符串呢
selongli 发表于 2018-7-1 14:38 | 显示全部楼层
字符串的结尾标志为'\0'
fentianyou 发表于 2018-7-1 14:39 | 显示全部楼层
改变一种发送方式。
febgxu 发表于 2018-7-1 14:40 | 显示全部楼层
数据都丢失还是不发送呢
sdlls 发表于 2018-7-1 14:40 | 显示全部楼层
串口发送你看看网上怎么操作的。
pixhw 发表于 2018-7-1 14:40 | 显示全部楼层
00这个字符有问题的。
minzisc 发表于 2018-7-1 14:41 | 显示全部楼层
使用空判断试试看。
lzmm 发表于 2018-7-1 14:41 | 显示全部楼层
建议后期修改为使用数量判断的。
hudi008 发表于 2018-7-1 14:41 | 显示全部楼层
该修改为空操作的。
kkzz 发表于 2018-7-1 14:41 | 显示全部楼层
使用for循环吧。
sdlls 发表于 2018-7-1 14:41 | 显示全部楼层
11 22 33 00 44 55是字符串吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

116

主题

377

帖子

0

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