.NET串口通信中将`0X1A`当做EOF处理,.NET接收到EOF会触发一次接收中断,此时事件形参`SerialDataReceivedEventArgs`值为枚举 `Eof`,其他为`Chars`。

参考: stackoverflow 、MSDN

## 测试

.NET编程,中断方式接收,发送一串数据后等待回应,打印进中断次数;另外一端用串口助手来实现。通信用虚拟串口。

 [TestClass]
public class EofByteSerialTest
{
private int _count = ;
private byte[] _receivedDataPacket;
SerialPort _serialPort = new SerialPort()
{
PortName = "COM5",
BaudRate = ,
DataBits = ,
StopBits = StopBits.One,
Parity = Parity.None
};
[TestMethod]
public void TestMethod1()
{
_serialPort.Open();
byte[] sendedData = { 0x01, 0x02, 0x03, 0x1a, 0x2a, 0x1a };
_serialPort.DataReceived += ComReceive;
_serialPort.Write(sendedData, , sendedData.Length);
Thread.Sleep();
//foreach (byte b in _receivedDataPacket)
//{
// Console.WriteLine(b);
//}
Console.WriteLine(_count);
}
private void ComReceive(object sender, SerialDataReceivedEventArgs e)
{
//if (e.EventType == SerialData.Eof)
//{
// //特殊处理
//}
_count++;
_receivedDataPacket = new byte[_serialPort.BytesToRead];
_serialPort.Read(_receivedDataPacket, , _receivedDataPacket.Length);
// 协议解析...
}
}

串口助手数据:

测试结果:

最新文章

  1. 自动判断应该Ajax还是return
  2. TimeUnit 使用
  3. 启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required
  4. js+css立体旋转
  5. 黑盒测试用例设计方法&理论联系实际-> 功能图法
  6. Basic REST API Design
  7. C primer plus 第五版十二章习题
  8. WebForm 控件(一)、连接数据库
  9. node.js学习系列(一)
  10. JUnit 3.8.1 源码学习
  11. mysql批量更新数据
  12. PageHelper 自动去掉排序参数问题
  13. Redis自学笔记:3.1入门-热身
  14. C#面向服务WebService从入门到精通
  15. Android——Activity去除标题栏和状态栏
  16. druid之监控设置及问题小记
  17. interrupt()方法的简单理解
  18. 160407、java实现多线程同步
  19. [Erlang05]gen_server怎么去写eunit?
  20. Uva 11600 期望DP

热门文章

  1. python开发目录合并小工具 PathMerge
  2. [IDEA] 快捷键学习
  3. Struts2 动态方法调用
  4. ArcGIS 10与ArcEngine 10安装及破解
  5. Web前端学习过程
  6. Java 通过代理测试webService接口
  7. vs 调试的时候 使用IP地址,局域网的设备可以访问并调试
  8. 在Unity中使用TDD - 初探
  9. C++STL -- vector实现
  10. C++标准库 -- pair