红外串口通讯问题,有点难度,急!
本人在开发红外通讯程序时, 使用红外转串口与PC连接。
有以下问题:
红外发送数据后,接收时经常把下发的命令也接收到。 称之为反射。 (但并不总是这样)
如:
下发:
68 00 00 00 00 00 00 68 01 02 C0 10 10 16
正常应该回应帧:
68 00 00 00 00 00 00 68 81 04 01 02 03 04 10 16
实际回应(下发帧+正常响应帧):
68 00 00 00 00 00 00 68 01 02 C0 10 10 16 68 00 00 00 00 00 00 68 81 04 01 02 03 04 10 16
请问, 这种问题应该用什么比较通用的解决方案?
以前的通讯程序是:
1). 同步通讯
发送时接收,指定超时时间(比如3秒), 在这个时间段内每接收到数据判断帧是否完成。
完成后退出。
问题:在收到 下发帧后就判断为接收OK, 就退出了。 如果判断接收了两个帧才算完成。
2)。异步通讯
通过 DataReceive事件接收, 问题是: 怎么判断所有数据接收完成呢?
在线等答案。 谢谢!