c#串口测试

软件和代码网盘下载 https://pan.baidu.com/s/1dFrE1pv#list/path=%2F

SerialPort 类 https://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(v=vs.110).aspx

 

问题解释:

命名空间:using System.IO.Ports;

1.serialPort可以直接调用系统的组件,也可以自己写。最好自己写到方法里面,否则跨界面不好调用。

2.serialPort有默认属性,给它一个串口以后可以直接使用。最好用枚举把参数传递过来。

3.流程:赋值,判断状态,开启,传递/接收,关闭。

4.发送:Write;接收send;

5.最困难的是接收。通过serialPort的 DataReceived接收数据,通过serialPort error获取错误信息。

如果不使用控件而自定义的Privite SerialPort  se=new serialPort(); ser.DataReceived += new SerialDataReceivedEventHandler(ser_DataReceived);

写下ser.DataReceived +=  双击tab 然后就自动写了一个  void ser_DataReceived(object sender, SerialDataReceivedEventArgs e)方法; 

6.每次缓冲有数据系统会调用DataReceived ,在里面写一个方法,先把数据传递到txt上面然后调用这个方法,截取字符串来判断消息然后处理消息。 不过因为控件是主线程创建的,所以会产生线程间操作无效: 从不是创建控件的线程访问;解决办法 微软文档:https://msdn.microsoft.com/en-us/library/ms171728.aspx

1.使用委托。2使用backgroundWorker。

 

posted @ 2017-03-10 14:42  国产小品牌  阅读(425)  评论(0编辑  收藏  举报