使用MsComm控件接收二进制文件,长度总是为0

hxbin1979 2007-10-05 12:01:00
以前用MsComm都是文本模式,数据的发送接收正常。现在用二进制模式通讯发送正常,但接收不到数据,串口自发自收都不行
串口属性设置:
axMSComm1.RThreshold = 1;
axMSComm1.SThreshold=0;
axMSComm1.Settings = "2400, E, 8, 1";
axMSComm1.Handshaking = MSCommLib.HandshakeConstants.comNone;
axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary;
axMSComm1.InputLen = 0;
axMSComm1.NullDiscard = false;

接收代码:
private void axMSComm1_OnComm(object sender, System.EventArgs e)
{
if (axMSComm1.CommEvent == 2)
{
byte[] buff;
buff = (byte[])axMSComm1.Input;
}
}
在buff处设置了断点,事件能触发说明收到数据,但是buff的长度始终为0,没有数据

后来我每次发送一个字节,并将axMSComm1.RThreshold设为3,只有发送到第3个字节时串口接收事件才触发,这样就确定串口已经接收到数据,但是buff = (byte[])axMSComm1.Input;这句代码总是取不到数据。
实在是没头绪了,请高手指点一下!!!
...全文
106 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxbin1979 2007-10-11
  • 打赏
  • 举报
回复
问题解决,不能在获取语句设置断点,否则单步取不到数据
lextm 2007-10-07
  • 打赏
  • 举报
回复
.NET 2.0用SerialPort封装了MsComm,所以没必要直接用MsComm了
chensike 2007-10-06
  • 打赏
  • 举报
回复
现在比较流行SerialPort
hxbin1979 2007-10-05
  • 打赏
  • 举报
回复
MsComm是微软的一个串口通讯控件
panzi667 2007-10-05
  • 打赏
  • 举报
回复
MsComm是什么东东,关注一下,好像是短信的,对不?

111,094

社区成员

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

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

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