收录日期:2020/12/06 02:30:46 时间:2016/07/31 20:26:30 标签:硬件/系统
我在用ReadFile, WriteFile 读写串口, 怎么判断超时啊,同步的方式下的,

没有超时的话,就在一直读,然后界面就卡死了,我想是过了特定多少秒,没有反应的话,就返回 然后弹出超时对话框
同步 
开启线程write或者read 然后使用SetTimer定时 到时未返回 超时
查看你的超时设置是否准确,超时结构体:


COMMTIMEOUTS to;
to.ReadIntervalTimeout = MAXDWORD;
to.ReadTotalTimeoutConstant = 0;
to.ReadTotalTimeoutMultiplier = 0;
to.WriteTotalTimeoutConstant = 10;
to.WriteTotalTimeoutMultiplier = 500;
SetCommTimeouts(m_hCom, &to);


读写完串口时需要用purge()接口释放优先权或者用sleep(1);来释放
这两个函数的最后一个参数是OVERLAPPED结构体,在这个结构体中可以传一个事件Handle 。
/:^]
msdn上就有说明的:

 if hFile was created with FILE_FLAG_OVERLAPPED.
 the lpOverlapped parameter must not be NULL. It must point to a valid OVERLAPPED structure.
传入的Overlapped结构中的hEvent在读取完成时就会被SetEvent。Overlapped中的Offset设置成要开始读取的偏移,也就是 SetFilePointer要设置的地址。
简短的操作它的方式是HasOverlappedIoCompleted判断是否完成和 CancelIo取消操作。
因此可以创建一个新线程的方式来读取,每隔一会儿HasOverlappedIoCompleted判断下是否已读取完即可。

http://msdn.microsoft.com/en-us/library/aa365467(v=vs.85).aspx

如何将msdn2002和vc++关联起来,现在一按F1,就说我没有装。 请问如何连接java和SQL2000?驱动程序的名称叫什么? pb8的retrieve()问题! 采用什么模式好? 请问,这些是什么古怪的日期格式?(JAVA+DB2) 关于to_date的使用我如果不指定格式的话,它的默认格式是什么呢? 我用vb做了一个串口接收单片机发送数据的程序,怎样把接收的数据向一个文本文件中追加 谁能帮我下载这首歌曲? listbox的问题,好长时间了?在线等......... 请问如何获取并口数据 ■■■ 如何取得 PE 文件中256色或真彩色的图标? 熬夜的朋友有福了,给你们加油,来报道都有分。 怎样向一个文本文件中追加数据? 为什么.EXE文件不能执行? 装了linux7.3却不能启动 3x jinagwy 帮忙解释一下编译错误出在哪儿急啊!· 请教字符串处理的问题! 请问:怎样获取光标在当前窗体中的坐标。请注意:是当前窗体,而不是屏幕 请问 请精通802.11和数据报截获的朋友进来 请问如何在调用一个.exe程序后,获得该程序中一个按钮的句柄? 高分求一恶难的JS问题 求助..希望各位能帮忙解决问题!谢谢很紧! 我要实现这样的trigger 安装UNIX时的故障 新手请教!请大家帮帮忙(如何做购物车) 新手问题3,关于fontdialog 破解ADSL密码? 请高手教教我啊!