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

2019-07-21 00:59发布

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

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

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

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


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


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
Quantum
2019-07-22 05:13
warship 发表于 2018-7-25 20:59
干嘛要左右移8位,
如果规定帧头是0xAA, 帧尾是0x0D
检查正确就丢弃不管了,

//RX_BUF[MAX]是接收缓冲区,已经接收完了,就是说里面的东西已经写死,再按下面执行就达到了命令解析的目的了,对吗?
if(RX_BUF[0]!=0xAA)
{
     {printf("other ");}//判断第一个元素不是0xAA
else
     {
      switch(RX_BUF[1]) //判断第二个元素是0x26还是0x0A
         {case 0x26:
              printf("0x26 ");
          break;
          case 0x0A:
              printf("0x0A ");
          break;
          default:
          break;
     }
}

一周热门 更多>