日期:2014-05-20  浏览次数:20721 次

关于serialport控件的datarecived事件的疑问
请问:serialport的dataricieved事件是每个字节到达时都触发吗?
readbyte 和 readchar有什么区别?
readexisting是不是读当前接受缓冲区中所有的字节?

假如缓冲区中有10个字节,用readbyte读到一个字节后,是不是该字节就从缓冲区中去掉了,同样的道理,每次调用readexisting,是不是都是取缓冲区全部数据,然后清空缓冲区?

------解决方案--------------------
一般 ReceivedBytesThreshold 属性决定 dataricieved 激活条件,但是并不绝对。这个事件具有不确定性,有时几个,有时n个。
dataricieved 里加上 thread.sleep(100);100-500 毫秒延时会提高数据填充率。 
readbyte ,readchar 字面理解就有区别。 一般常用 readbyte
........................