关于串口通信指令返回的问题

yqlhust 2009-04-21 09:51:27
我现在想做一个通过串口与下层软件通信的界面,界面发指令以后,下层软件会返回相应的指令进行响应,那么该如何判断是否有响应呢?也就是说,不仅要有帧结构的指令返回,还要返回的是相应操作的指令。我现在知道的是通过Timer驱动,设置标志位,隔多少时间以后如果还没有指令返回,则重发该帧,重发多少次以后还无响应则判定无响应。
但现在不想用这个方法,请问还有什么办法可以判断的么?
...全文
368 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yqlhust 2009-04-22
  • 打赏
  • 举报
回复
哎,算了,结贴
yqlhust 2009-04-21
  • 打赏
  • 举报
回复
帮帮忙啊大虾们~~
yqlhust 2009-04-21
  • 打赏
  • 举报
回复
跟我知道的方法一样的啊~
但是现在由于一些限制不能用这个
有没有别的方法啊?
ky310 2009-04-21
  • 打赏
  • 举报
回复
设置命令字,设置校验码,对返回的数据进行校验,校验通过则是合法的指令,通过判断命令字可以判断是返回什么样的指令。发送时设置TIMER,定长时间内没接收到正确的返回指令则认下层软件无应答,重发
yqlhust 2009-04-21
  • 打赏
  • 举报
回复
在线等,大家帮帮忙啊~~
yqlhust 2009-04-21
  • 打赏
  • 举报
回复
切,肯定不是我啊~
你手上改的程序就是串口的用Timer ,N多问题,那是Timer的使用没有控制好,控制好了就不会有那么多的问题了
我这边串口使用的是异步方式,基于消息的,所以不需要用线程
Ghost90 2009-04-21
  • 打赏
  • 举报
回复
不要用Timer 用线程,因为用Timer定时 会有很多的问题。
大致过程在线程里写
while(1)
{
WriteFile()
::Sleep(等待时间)
ReadFile()
.....
处理数据,在界面上显示

}
大体是这个过程

我手上改的程序就是串口的用Timer 靠的N多问题,想把写程序的人抓来骂一顿,
难道是你???????????
yqlhust 2009-04-21
  • 打赏
  • 举报
回复
高手人呢?
分不够的话再加啊

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧