使用MsComm控件接收二进制文件,长度总是为0
以前用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;这句代码总是取不到数据。
实在是没头绪了,请高手指点一下!!!