我想在串口
上连续读取DATADATA格式为A5 30 31 32 32 ....... 0D
在一次查询中收到差不多50字节
我这样做 DATA = Convert.ToByte(serialPort1.ReadByte()); 行代码,但程序将在两次三次查询后挂起。
请任何人共享一个简单的串口代码。
阿什拉夫
答案 0 :(得分:0)
您很可能有一个有缺陷的串口。尝试将设备连接到其他端口。
答案 1 :(得分:0)
您对ReadByte()的调用可能只会陷入无限超时,等待更多未通过的数据。
您确定继续接收数据吗?您确定正确设置了波特率,奇偶校验,停止位和握手吗?
答案 2 :(得分:0)
你可以试试这个 SerialPort.ReadExisting Method
根据编码,在SerialPort对象的流和输入缓冲区中读取所有立即可用的字节。
以下是我使用的示例代码,它对我来说很好用
public static string ReadMessage(int index)
{
using (SerialPort sp = new SerialPort(_portNumber))
{
sp.Open();
sp.Write("AT+CMGR=" + index + "\r");
Thread.Sleep(2000);
return sp.ReadExisting();
}
}