SerialPort类源代码分析

时间:2021-10-09 20:40:10

前几篇串口编程大致讲述了Windows下串口的大致操作,接下来分析流行的SerialPort类,它把Windows API封装好,方便开发利用

1、Win32下串口大致操作流程
(1)打开串口:CreateFile函数
(2)建立串口通信事件:CreateEvent函数
(3)初始化串口:SetCommState函数
(4)建立监视线程,即读写数据线程,因为我们不知道什么时候数据会到来,这里是一个异步事件
(5)写数据:WriteFile
(6)结束:关闭线程->停止WaitCommEvent->CloseHandle

2.SerialPort类的数据结构
大致了解操作流程后,先看一下SerialPort类,均在代码注释了
数据成员:

 

3.串口操作

(1)初始化串口

流程:检查参数-->检测线程-->创建事件(监视线程)-->打开端口-->设置异步IO结构参数,详细见代码:

   

 

(2)监视线程的控制

先看比较简单的线程控制吧,主要有开启线程,复位和停止

 

 

(5)写数据

也是由监视线程操作,不过触发事件交给主线程来触发,函数是WriteToPort




 

好了,SerialPort代码分析到此为止,我水平有限,分析可能有不少问题,欢迎大家指出