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

hxbin1979 hxbin1979 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以前用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;这句代码总是取不到数据。
实在是没头绪了,请高手指点一下!!!
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
hxbin1979
C# 111,128 成员 642,536 内容