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

c# 串口事件解决方法

2013-12-22 
c# 串口事件用 System.IO.Ports.SerialPort()串口类进行编程,请问serialPort_DataReceived()事件是怎么触

c# 串口事件
用 System.IO.Ports.SerialPort()串口类进行编程,请问serialPort_DataReceived()事件是怎么触发的?是接收到一个字节数据后就立即触发还是接收完一帧数据才触发?
[解决办法]
我只会用不明触发原理

SerialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(SerialPortDataReceived);        /// <summary>
        /// 接收数据事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void SerialPortDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            //函数
        }

[解决办法]
我记得 它里面 有个 ReceivedBytesThreshold 什么阀值的 设置 多少个字节 触发一次的 你网上 找一下  很多的  是在不行我这里 也有程序   
ReceivedBytesThreshold
Gets or sets the number of bytes in the internal input buffer before a DataReceived event occurs.
[解决办法]
只要有数据只触发··不管数据的多少·或者完整不完整···

引用:
用 System.IO.Ports.SerialPort()串口类进行编程,请问serialPort_DataReceived()事件是怎么触发的?是接收到一个字节数据后就立即触发还是接收完一帧数据才触发?

[解决办法]
引用:
用 System.IO.Ports.SerialPort()串口类进行编程,请问serialPort_DataReceived()事件是怎么触发的?是接收到一个字节数据后就立即触发还是接收完一帧数据才触发?


这个不一定的,你把接收到得数据打印出来就可以看到了,毫无规律,基本 有数据来就会触发
[解决办法]
接收到就会触发。
你需要判断数据的头和尾,如地址,校验码。然后将每条数据分割开来,进行处理。
[解决办法]
http://www.cnblogs.com/JimmyZhang/archive/2008/09/07/1286300.html

你看看这个的博客吧,这个博客上讲的很清楚,非常不错,它分了5个部分去讲,你仔细看看,就应该能帮你解决问题
[解决办法]
SerialPort控件有个ReceiveBytesThreshold属性可以设置DataReceived事件触发前输入缓冲区的字节数,默认是1,就是接收到一个字节,就会触发DataReceived事件

热点排行