stm32f103串口接收数据解析的问题

2019-07-21 00:59发布

本帖最后由 Quantum 于 2018-7-25 18:47 编辑

描述:生产测试装备把多个命令通过串口发给CPU,这些命令是有头有尾的。CPU通过解析这些命令来调用相关函数从而控制外设做出相应的动作,也有的命令是返回给生产测试装备的。   

思考:先把接收到的指令放在接收缓冲区中,然后读取缓冲区中的内容,调用相关函数。

问题:现在,头、尾和命令字都给了。1. 具体该怎样搭建这个解析的框架?2. 如何从接收缓冲区里读出命令字?3. 接收缓冲区的大小是由什么决定的?


本人菜鸟一枚,一旦牵扯到存储的东西,就晕头转向。哪位大神解答,谢谢~


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
warship
1楼-- · 2019-07-21 04:01
1、架构你其实已经有了,就差具体实现;
2、检查分析接收字符,核对头尾是否符合要求,符合则掐头去尾取出命令字;
3、接收缓冲不用太大,能够存储三五条命令足矣,串口速度不快或者传输不频繁的话,存储一两条就够了。
yanzhuangsongqi
2楼-- · 2019-07-21 06:34
可以参考下原子哥的例程
Quantum
3楼-- · 2019-07-21 12:23
 精彩回答 2  元偷偷看……
Quantum
4楼-- · 2019-07-21 17:12
yanzhuangsongqi 发表于 2018-7-25 19:40
可以参考下原子哥的例程

谢谢,请问该参考哪个例程?例程我还没有学完
Quantum
5楼-- · 2019-07-21 19:16
yanzhuangsongqi 发表于 2018-7-25 19:40
可以参考下原子哥的例程

谢谢,请问该参考哪个例程?例程我还没有学完
warship
6楼-- · 2019-07-22 00:21
Quantum 发表于 2018-7-25 20:56
谢谢您的回答。如果帧头是0xAA, 帧尾是0x0D, 那么依次左右移8位再赋给新的数组,然后对这个数组逐字节检 ...

干嘛要左右移8位,
如果规定帧头是0xAA, 帧尾是0x0D
检查正确就丢弃不管了,
直接取命令0x0F执行相应的动作就行了。

一周热门 更多>