当前位置:编程学习 > C#/ASP.NET >>

RS232数据接收事件

最近在做一个RS232的程序,遇到一个问题,数据接收事件不起作用。求解答。

  ComPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);

  comPort = new SerialPort(ComportName, 14400, Parity.even, 8, StopBits.One);
  comPort.ReadTimeout = 100;
  comPort.WriteTimeout = 100;
  comPort.DataReceived += ByteReceived;
  comPort.ReceivedBytesThreshold = 1;


接收事件ByteReceived:
string ComString = ComPort.ReadExisting();
从未进入到事件处理程序。 --------------------编程问答-------------------- 下载一个调试助手看有没数据确定硬件正常先。 --------------------编程问答--------------------
引用 1 楼 wuyazhe 的回复:
下载一个调试助手看有没数据确定硬件正常先。
+1 --------------------编程问答-------------------- 用的是哪个控件?
ComPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
这个事件是你自己写的还是,用vs生成的?(建议用vs自动生成)。
如果不是事件定义的问题,就用一个串口接收程序测试一下是否为通路,并检查数据是否发过来了。 --------------------编程问答-------------------- 14400,有这个波特率吗? --------------------编程问答-------------------- 硬件正常,有数据,,在数据接收事件中设断点,从未进入,用查询可以。
3楼,事件用vs自动生成如何写。
波特率 9600 --------------------编程问答-------------------- 你用我的例子试试,如果可以,做例子来对照修改你的代码。
http://download.csdn.net/source/2369323 --------------------编程问答-------------------- 首先应该检查你的硬件是否正常。
然后再看看你的协议。
看看是否发送成功。
在看看是否在发送后串口关闭了。 --------------------编程问答-------------------- comPort = new SerialPort(ComportName, 14400, Parity.even, 8, StopBits.One);
硬件正常,有数据,,在数据接收事件中设断点,从未进入,用查询可以。
3楼,事件用vs自动生成如何写。
波特率 9600
你波特率都不对。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,