windows10 c#串口 *** 作 无法接收数据

windows10 c#串口 *** 作 无法接收数据,第1张

获取串口中的数据,可以这样试试

int bytes = serialPort1.BytesToRead //读取数据长度

byte[] buffer = new byte[bytes]

serialPort1.Read(buffer, 0, bytes) //读取串口数据

serialPort1.ReadLine()是输入缓冲区中直到首次出现NewLine值,出现异常参见csdn

对于粘贴出的代码:

首先确认使用的串口是SerialPort2还是SerialPort1,截图中你调用BytesToRead使用的是SerialPort1,而定义的响应函数名为serialPort2_DataReceived,是不是串口调用出现了问题;其次串口serialPort2的响应,定义为

this.serialPort2.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort2_DataReceived)

其声明为

private void serialPort2_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

依据你贴出的程序来看,明明是串口2的响应函数,你却用串口1调用BytesToRead(),自然会出现异常

参考以下:

1)通过虚拟串口软件创建虚拟串口

2)安装modbus主站和从站的软件

3)使用这两个软件结合虚拟串口来看下数据发送正不正常

4)打开C#写得软件和从站软件,看下C#发送出来的报文格式对不对

请问数据源来自哪里!

个人觉得:

1、读取串口数据先设置好com口,波特率、奇偶校验、停止位数、数据位数等

2、数据发送了数据口,串口适当延时后在读取。

3、你可以把串口的2#和3脚短路,进行调试程序!电脑先发送数据,然后立即读取,以测试硬件和软件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6937206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存