注册 登录
编程论坛 C# 论坛

C# 中 serialport1.DataReceived 函数无法触发

zj1021799879 发布于 2014-10-15 11:27, 773 次点击
利用串口发送接收数据。
只有在发送数据的函数那里插入断点才可以触发serialport1.DataReceived函数,接收到数据;撤销断点后不能触发serialport1.DataReceived函数。这是什么原因呢?
尝试了好多种方法都不起作用,求帮助呀!
2 回复
#2
chenhongwu2014-10-16 08:39
曾经这个问题困扰我多天最后查资料一大堆,最后终于解决了,你要在com实例化的时候设置一个属性就可以
            com = new SerialPort();
            com.BaudRate = 19200;
            com.PortName = "COM1";
            com.DataBits = 8;
            com.Parity = (Parity)0;
            com.StopBits = 1;
            com.WriteTimeout = 3000;
            com.ReadTimeout = 3000;
            com.ReceivedBytesThreshold = 1;  //必须一定要加上这句话,意思是接收缓冲区当中如果有一个字节的话就出发接收函数
            com.DataReceived += new SerialDataReceivedEventHandler(com_DataReceived);
这个问题问了好多人都说的不对,最后突然在网上一片博文中发现的准备发一篇博文呢,还没有写呢,今天正好写一个
#3
zj10217998792014-10-16 09:17
回复 2 楼 chenhongwu
恩恩,谢谢啦。我的问题昨晚也解决了,嘿嘿。虽然忙了很长时间都忘了怎么改好的了。
不过你的回复确实也是一个必须要注意的问题!呵呵。
有时候遇到编程问题特别烦人,尤其是检查不出错误的时候,很是纠结,就想弄好它。
1