我想请教几个串口通讯的问题(200分)

  • 主题发起人 主题发起人 xxhadsg
  • 开始时间 开始时间
X

xxhadsg

Unregistered / Unconfirmed
GUEST, unregistred user!
我想请教几个串口通讯的问题:
1.我想发送指令后一直等待反馈,以便判断命令执行正确与否,怎么办?
2.多线程串口通讯,不明白命令可以一直发送出去,怎么判断返回的信息是那条指令的执行结果?
非常感谢,如果有示例代码请发至adsg@tom.com,另有分相送。谢谢。
 
1。有两种方法可以实现。
a.如果采用同步方式,没有创建接收事件,可以用循环读串口。判断有没有数据。
b.如果采用异步方式,创建了接收事件,可以在线程中处理。
2.需要自己分析,比如可以自己定义通信格式。串口通信只是管通信,他自己是不判断发送的他接收的是什么。更别说判断返回的信息是那条指令的执行结果。

代码你自己找吧,太多了,我以前应该贴的有。
 
1. 延时等待, 循环读: s := s + Comm1.readText
2. 根据你定义的规约来区分
 
其实很简单的问题。随便找一个传口协议都可以解决你的问题。你的问题是没有实际编写。
串口发送数据后等待对方确认。对方读取传口缓冲区,得到数据判断是否正确数据。如果是处理,不是丢弃(这里可以判断是否是发送过来的数据包如果是可以返回消息让对方重新发送),重新读取,直到取得正确的数据。
 
第一个问题好解决:用串口控件(如SPComm),写串口后,人为的设置一个死循环(这个循环的条件是是否得到回复的标志),串口控件自动读取串口,如果读串口成功,就会把回复的标志置为真,就退出循环
 
谢谢各位,关于多线程问题有解释吗?
很快便分分给大家。
 
我还没有分配分数分数怎么就没了?????
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部