阅读:1727回复:6
连续用ReadFile()读取COM1口数据回死机,该如何解决
我用ReadFile()连续读取COM1口数据,每次读取差不多相隔40毫秒,但程序很容易死机,可我的软件有要求以这种频率来读取数据,有没有什么办法使程序能连续读COM1口数据,又不使程序死机?
|
|
沙发#
发布于:2002-06-02 08:29
估计是OVERLAPPED参数没设对。
|
|
板凳#
发布于:2002-06-02 11:35
我设置OVERLAPPED参数为NULL,这有错吗?
|
|
地板#
发布于:2002-06-02 19:13
估计是程序问题,比如bufferoverflow 或者stack被overwrite了
你把时间间隔放长,虽然发生机会会降低,但应该还是会发生死机的。 |
|
地下室#
发布于:2002-06-03 16:51
检查SetCommTimeouts有没正确
然后需要SetCommMask然后用WaitCommEvent等待EV_RXCHAR才去读. |
|
5楼#
发布于:2002-06-03 16:56
若设置OVERLAPPED参数,readfile()后面就一定要用getoverlappedresult().
我以前的程序有置OVERLAPPED参数的 |
|
6楼#
发布于:2002-12-21 11:16
ReadFile( )是阻塞调用,如果没有收到要求的数量,就会等啊等
|
|