首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

用API与串口通信,如何避免接收到串口发送数据到达信息

2012-02-16 
用API与串口通信,如何处理接收到串口发送数据到达信息?现在是接收端串口无法接收数据,发送方串口在发送时

用API与串口通信,如何处理接收到串口发送数据到达信息?
现在是接收端串口无法接收数据,发送方串口在发送时一直阻塞,但当将该接收端串口关闭时,发送方可以发送出去?

[解决办法]
用.Net 2.0里的SerialPort类吧
[解决办法]
我用过 SerialPort,有例子
但是还没有用过api来实现
如果需要 我可以给你发过去
[解决办法]
public byte[] Read(int NumBytes) {
byte[] BufBytes;
byte[] OutBytes;
BufBytes = new byte[NumBytes];
if (hComm!=INVALID_HANDLE_VALUE) {
OVERLAPPED ovlCommPort = new OVERLAPPED();
int BytesRead=0;
ReadFile(hComm,BufBytes,NumBytes,ref BytesRead,ref ovlCommPort);
OutBytes = new byte[BytesRead];
Array.Copy(BufBytes,OutBytes,BytesRead);
}
else {
throw(new ApplicationException( "Comm Port Not Open "));
}
return OutBytes;
}
public void Write(byte[] WriteBytes) {
if (hComm!=INVALID_HANDLE_VALUE) {
OVERLAPPED ovlCommPort = new OVERLAPPED();
int BytesWritten = 0;
WriteFile(hComm,WriteBytes,WriteBytes.Length,ref BytesWritten,ref ovlCommPort);
}
else {
throw(new ApplicationException( "Comm Port Not Open "));
}
}
}
}
}

[解决办法]
上面那个程序有点小问题
dcbCommPort.Parity=Parity;
dcbCommPort.ByteSize=ByteSize;
dcbCommPort.StopBits=StopBits;
if (!SetCommState(hComm, ref dcbCommPort))
这样写,并不能给dcbCommPort付值,还有一个api ,BuildCommDCB,专门用来初始化参数的

热点排行