急!!!用串口接收16进制数据的时候,为什么一遇到"00",后面的就不接收了?

sanjin04 2006-03-29 03:18:38
如果要接收一串16进制数据,比如:"01 02 44 00 21 22".接收区每一次只会收到"01 02 44",而后面的就收不到了.是不是因为字符串都是以'\0'作为结束的,它遇到"00"就以为是字符串结束了呢??请问各位大虾,这个问题怎么解决啊??我现在非常着急啊!!!

谢谢各位!!!
...全文
676 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
soloxiao 2006-04-09
  • 打赏
  • 举报
回复
或者是一个一个的取
soloxiao 2006-04-09
  • 打赏
  • 举报
回复
不管用什么组件,读数据时不要用getString,要用getBuffer(char*,int count)类似的函数
海嵌 2006-04-05
  • 打赏
  • 举报
回复
if(MSComm1->PortOpen == true)
MSComm1->PortOpen = false;

InputMode = 1; //comInputModeBinary 二进制模式
MSComm1->PortOpen = true;
Jim@luckeeinc.com 2006-04-04
  • 打赏
  • 举报
回复
有可能是这个问题
alloutoflove 2006-04-04
  • 打赏
  • 举报
回复
如果使用的MSCOMM32的话,请确认InputMode设为comInputModeBinary 1, 即二进制模式, 如果使用的是其它的方法, 我想也应该是这方面的问题
ker0 2006-04-04
  • 打赏
  • 举报
回复
alloutoflove(andrew) ( ) 信誉:100

支持!
这样的情况要用二进制模式
yz20050510 2006-04-03
  • 打赏
  • 举报
回复
把你的主要代码贴上来,看看
柯本 2006-03-29
  • 打赏
  • 举报
回复
应该不会,
1.看你用的控件的设置
2.看你的接收程序是否能接收0
3.看你的输出程序是否能输出0(接收缓冲中已收到,但你没有将它显示,如你定义了接收缓冲char buff[...],然后你用strcpy将它拷贝到另一char [],当然就不会有0了)
纪俊 2006-03-29
  • 打赏
  • 举报
回复
测试下 :"01 02 44 21 00 22"是不是得到了01 02 44 21就知道了哈
僵哥 2006-03-29
  • 打赏
  • 举报
回复
具體看你的代碼是如何寫的.

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧