pango99
驱动牛犊
驱动牛犊
  • 注册日期2001-08-21
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1727回复:6

连续用ReadFile()读取COM1口数据回死机,该如何解决

楼主#
更多 发布于:2002-06-01 23:24
我用ReadFile()连续读取COM1口数据,每次读取差不多相隔40毫秒,但程序很容易死机,可我的软件有要求以这种频率来读取数据,有没有什么办法使程序能连续读COM1口数据,又不使程序死机?
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-02 08:29
估计是OVERLAPPED参数没设对。
pango99
驱动牛犊
驱动牛犊
  • 注册日期2001-08-21
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-02 11:35
我设置OVERLAPPED参数为NULL,这有错吗?
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-06-02 19:13
估计是程序问题,比如bufferoverflow 或者stack被overwrite了

你把时间间隔放长,虽然发生机会会降低,但应该还是会发生死机的。
lmycs
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2002-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-03 16:51
检查SetCommTimeouts有没正确
然后需要SetCommMask然后用WaitCommEvent等待EV_RXCHAR才去读.
lmycs
驱动牛犊
驱动牛犊
  • 注册日期2001-07-23
  • 最后登录2002-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-03 16:56
若设置OVERLAPPED参数,readfile()后面就一定要用getoverlappedresult().
我以前的程序有置OVERLAPPED参数的
yutao
驱动牛犊
驱动牛犊
  • 注册日期2002-04-27
  • 最后登录2004-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-21 11:16
ReadFile( )是阻塞调用,如果没有收到要求的数量,就会等啊等
游客

返回顶部