如何去掉阻塞在串口上的读操作?
串口的打开方式:(非重叠方式打开)
hPort = CreateFile ("COM1", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
SetCommMask (hPort, EV_RXCHAR); //事件,读
程序然后阻塞在这里(位于启动的一个线程里头):
WaitCommEvent(hPort, &commStatus, 0);等待串口上的写数据发生,以便在程序中读取。
问题就是现在欲关闭串口的线程,程序却一直仍阻塞在这里。
hPort = CreateFile ("COM1", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
SetCommMask (hPort, EV_RXCHAR); //事件,读
程序然后阻塞在这里(位于启动的一个线程里头):
WaitCommEvent(hPort, &commStatus, 0);等待串口上的写数据发生,以便在程序中读取。
问题就是现在欲关闭串口的线程,程序却一直仍阻塞在这里。
...全文
相关推荐
C++串口通信类(阻塞和非阻塞都支持)
C++串口通信类。 可以方便的进行串口通信,如果需要用串口可以试用一下哈。包括阻塞与非阻塞方法。
QT QSerialPort 封装,阻塞方式发送数据后等待读取缓冲区数据结果,使用QT信号量阻塞,线程中初始化串口和读取数据。
QT QSerialPort 封装,阻塞方式发送数据后等待读取缓冲区数据结果,使用QT信号量阻塞,线程中初始化串口和读取数据。
串口通信非阻塞
串口通信非阻塞方式,发送数据,接收数据并保存到文件(当间隔n毫秒没有再收到数据表示一次接收完毕,将数据保存到文件)
c++ 串口类 读 写 取得串口列表
c++ 串口类 打开,关闭串口,读写,取得串口列表
C# winform 封装了C#串口操作,封装了串口通信线程,阻塞接收,封装了串口初始化模块
C# winform封装了C#串口操作,封装了串口通信线程,阻塞接收,封装了串口初始化模块


进程/线程/DLL
