vb.net 中 serialport 控件的一些使
用经验
一些需要注意的地方
Serialport 的 datareceived 事件是串口接收到不大于
SerialPort1.ReceivedBytesThreshold 个字节的时候触发,但是具体多少个
不确定(实验发现,当第一个字节与下一个字节发送间隔很短的时候几乎就是
等于 SerialPort1.ReceivedBytesThreshold 的时候触发,但是间隔很长的
时候就不确定了,但是一定小于 SerialPort1.ReceivedBytesThreshold)。
在 datareceived 事件中不能直接改变窗体上的控件的属性,例如用一个
label 显示接收到的数,把数直接赋值给 label 的 text 属性,这是不可以,但
是可以利用同步委托实现。异步委托也可以实现,但是经过实验,这样会在
ReceivedBytesThreshold=1,并且相邻两个字节间隔较长的时候造成串口
丢失数据。
同步委托
view plain copy to clipboard print ?
1. DelegateSub_dlmyfunction()
2.
3. '放在前面声明一下,名字随便,我用的是_dlmyfunction,
4. '也可以用 aa 或者其他名字。与后面调用的时候对应就行了
5.
6. Privatesubmyfunction()
7.
8. '函数体
9.
10. Endsub
调用
view plain copy to clipboard print ?
1. PrivateSubSerialPort1_DataReceived(ByValsenderAsObject,
ByValeAsSystem.IO.Ports.SerialDataReceivedEventArgs)Han
dlesSerialPort1.DataReceived
2.
3. '这里可以放自己的代码
4.
5. Me.invoke(new_dlmyfunction(addressofmyfunction))'同步委
托
评论30