软件和代码网盘下载 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。