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

2019-07-21 00:59发布

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

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

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

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


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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
warship
2019-07-22 12:01
原子的串口例程是接收字符串,它以接收0DH,0AH即回车、换行作为结束标志,这样才可以做到缓冲区的第一个字符就是字符串的第一个字符。对于二进制的接收处理则靠分析解析,缓冲区仅起缓冲作用。如果你所收数据全是工整的标准头尾,可以简化解析,仿一下原子的例程,收到头就舍弃,作标记已经收到头,后边收到的正文才放进缓存,直到收到尾,清标记,准备收下一帧。这样,缓存的内容就完全是纯正文了。

一周热门 更多>