Mscomm接收不到00H

shenyouzhe 2006-10-30 03:09:12
在接收十六进制数据时,00H收不到,缓冲区没有数据读入。怎么回事?例如发的数据是:eb900001只能收到eb9001,请大侠帮忙。
...全文
253 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenyouzhe 2007-03-20
  • 打赏
  • 举报
回复
mscomm设置问题,已解决.
shenyouzhe 2007-03-19
  • 打赏
  • 举报
回复
这个问题还没有解决,请大侠帮忙分析一下代码.
shenyouzhe 2006-11-08
  • 打赏
  • 举报
回复
发送没有问题,接收代码如下:是不是哪里有问题!s=MSComm1->Input读出的数据没有00H

void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
char buff[256]={'\0'};
AnsiString str=""; //声明一个AnsiString类型的变量
OleVariant s;//声明一个用于接收数据的OleVariant变量。
if(MSComm1->InBufferCount>0)// 是否有字符驻留在接收缓冲区等待被取出
{
s=MSComm1->Input;//接收数据
long ByteNum=s.ArrayHighBound();//将实际读的字节数取出
for(int i=0;i<=ByteNum;i++)
{
buff[i]=(unsigned char)s.GetElement(i); //将接收缓冲区的数据放在自定义数组中
str+=IntToHex((unsigned char)buff[i],2)+" ";//数据的显示
}
Memo1->Text=Memo1->Text+str;
}
}
FFSB 2006-11-07
  • 打赏
  • 举报
回复
Mscomm设成二进制模式还是文本模式?//默认文本
iec 2006-11-07
  • 打赏
  • 举报
回复
没有问题,全部转换为字符串发送
shenyouzhe 2006-11-06
  • 打赏
  • 举报
回复
请大家帮帮忙。
YJS050320001 2006-11-06
  • 打赏
  • 举报
回复
如果遇到00就接受不倒的话还可能 那后面的01就应该接受不到了
这种情况还没有遇到过。
觉得LZ应该多测试一下。
jiangshx 2006-11-06
  • 打赏
  • 举报
回复
应该不会吧,会不会是收发字符串显示的问题?

1,316

社区成员

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

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