2024年3月14日发(作者:)
编写串口通讯类程序涉及的主要Windows API函数,目前仅做索引而已:
1. 打开串口:用CreateFile函数打开。
2. 配置串口:用GetCommState (hComm , &dcb) 函数可读取串口设置的当前
DCB结构;用GetCommProperties(hComm,lpCommProp)可知端口允许哪些设置;进
行相关设置后用SetCommState (hComm , &dcb) 函数保存DCB设置。
3. 超时设置:用GetCommTimeouts (hComm , &timeouts) 可得到超时设置的
COMMTIMEOUT结构,作相关超时参数设置后用SetCommTimeouts (hComm ,
&timeouts) 保存设置。
4. 串口读写:用ReadFile函数读取串口数据,如果是异步读取则还需要用
GetOverlappedResult函数来完成读取;WriteFile函数向串口写数据;PurgeComm
( hComm,PURGE_TXCLEAR)用于清除串口缓冲区(另参数PURGE_TXABORT中止所有
后台写,PURGE_RXABORT中止任何后台读,PURGE_TXCLEAR清除发送缓冲区)。
5. 事件驱动I/O:用GetCommMask(hComm,&dwMask)返回可以报告给应用程
序的事件(这些事件反映为串口针脚上电平高低的变化);用
SetCommMask(hComm,dwMask)设置要等待的一个或多个事件的掩码(比如EV_RING
表示测到振铃);用WaitCommEvent(hComm,&dwEvent,&Overlapped)来等待事件发
生;额外的EscapeCommFunction函数可直接操纵串口针脚信号(DTR、RTS等)
6. 错误处理:用 ClearCommError (hComm,&dwErrorMask,&comstat) 来确定
发生的故障,第二个参数包含所发生错误的掩码,第三个参数指向COMSTAT结构,该结
构保存端口当前状态的一些有用信息,比如当前接收缓冲区有多少字节数据等等。
7. 关闭串口:用CloseHandle (hComm) 关闭。


发布评论