用axMSComm1_OnComm接收串口来的数据,老是一组数据,分开两次接受,怎么解决

鲁虾 2006-03-09 06:37:29
System.Threading.Thread.Sleep(300);
switch(axMSComm1.CommEvent)
{
case (short)MSCommLib.OnCommConstants.comEvReceive:
int k =axMSComm1.InBufferCount;
int i=0;
if (k!=0)
{
string s=(string)this.axMSComm1.Input;
this.axMSComm1.RThreshold = 0;
k =axMSComm1.InBufferCount;
while(k!=0)
{
s=s+(string)this.axMSComm1.Input;
k =axMSComm1.InBufferCount;
WriteLine("第"+i.ToString()+"次"+" "+k.ToString() ,false);
}
ProcessComData(s);
this.axMSComm1.RThreshold = 1;
}
break;
}
...全文
266 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingzhaofeng 2006-03-09
  • 打赏
  • 举报
回复
this.axMSComm1.RThreshold = 1;

将该值设置为你的数据长度,注意你在初始化时,也会有返回值,最好是在开始要接受你需要的数据格式的时候在将该值设置为你需要的每次处理的数据长度,如果每次数据长度不等,那么你只能是缓存你接受到的字符,然后再处理了
raulredondo 2006-03-09
  • 打赏
  • 举报
回复
你没有理解RThreshold的意思,RThreshold是收到几个字节就触发事件,没有必要用到中间改

如果你每次收的数都是一样的,应该把RThreshold设成那个数

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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