串口问题

paladin0212 2010-12-24 11:10:30
请教个问题我接收信号的时候为啥只收到第一个信号不知道代码哪出问题了

void __fastcall TForm1::YbCommDevice1CommNotify(TObject *Sender,
int NotifyType)
{
int li_Rev=0;

unsigned char byte[8192];
while((li_Rev=YbCommDevice1->Read(byte,8192))>0)
{


if(li_Rev==1)
{


Edit1->Text=1;
}
else if(li_Rev==2)
{
Edit1->Text=2;
}
}

问题是我用串口调试助手发送信号2的时候对话框显示的还是1,请教下如何改正
...全文
111 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
paladin0212 2010-12-24
  • 打赏
  • 举报
回复
判断byte是否接收到数据吗
jone7319 2010-12-24
  • 打赏
  • 举报
回复
是数据就应该判断byte这个变量了呀
paladin0212 2010-12-24
  • 打赏
  • 举报
回复
2这个数据
 int li_Rev=0;

unsigned char bytes[8192];
while((li_Rev=YbCommDevice1->Read(bytes,8192))>0)
{

li_Rev = StrToInt(IntToHex(bytes[0],2)) ;
if(li_Rev==1)
{


Edit1->Text=1;
}
else if(li_Rev==2)
{
Edit1->Text=2;
}
}
周药师 2010-12-24
  • 打赏
  • 举报
回复
问题是我用串口调试助手发送信号2的时候对话框显示的还是1,

你这里发送的是 2 这个数据 ?
还是发送2个字节的数据 ?


li_Rev=YbCommDevice1->Read(byte,8192)
这里li_Rev是表示收到数据的个数 而不是收到什么数据
jone7319 2010-12-24
  • 打赏
  • 举报
回复
你这个li_Rev是接收数据的字节数吧,不是接收的内容!
周药师 2010-12-24
  • 打赏
  • 举报
回复
别的先不说
unsigned char byte[8192];
这个byte做变量名了 把byte改改再说

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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