Delphi WaitCommEvent函数

 

转载于:https://www.cnblogs.com/fanweisheng/p/11390747.html

WaitCommEvent 是一个用于等待串口事件的函数,可以等待串口收到数据或者数据发送完毕等事件的发生。下面是一个使用 WaitCommEvent 函数的示例: ```c++ #include <Windows.h> #include <iostream> int main() { HANDLE hComm; DWORD dwEventMask; bool success; // 打开串口 hComm = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (hComm == INVALID_HANDLE_VALUE) { std::cout << "Failed to open COM1\n"; return 1; } // 设置串口参数 DCB dcbSerialParams = { 0 }; dcbSerialParams.DCBlength = sizeof(DCB); success = GetCommState(hComm, &dcbSerialParams); if (!success) { std::cout << "Failed to get serial parameter\n"; CloseHandle(hComm); return 1; } dcbSerialParams.BaudRate = CBR_9600; dcbSerialParams.ByteSize = 8; dcbSerialParams.StopBits = ONESTOPBIT; dcbSerialParams.Parity = NOPARITY; success = SetCommState(hComm, &dcbSerialParams); if (!success) { std::cout << "Failed to set serial parameter\n"; CloseHandle(hComm); return 1; } // 设置串口事件 success = SetCommMask(hComm, EV_RXCHAR); if (!success) { std::cout << "Failed to set comm mask\n"; CloseHandle(hComm); return 1; } // 等待串口事件 success = WaitCommEvent(hComm, &dwEventMask, NULL); if (!success) { std::cout << "Failed to wait comm event\n"; CloseHandle(hComm); return 1; } else { if (dwEventMask & EV_RXCHAR) { std::cout << "Received data from COM1\n"; } } // 关闭串口 CloseHandle(hComm); return 0; } ``` 这个例子中,首先打开串口 "COM1",然后设置串口参数,接着设置串口事件为 EV_RXCHAR,即等待串口收到数据事件的发生。最后调用 WaitCommEvent 函数等待事件的发生,如果收到 EV_RXCHAR 事件,就输出 "Received data from COM1"。最后关闭串口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值