求思路,串口接收不固定数据长度包,可以怎么处理

2020-01-26 13:03发布

对帧头和帧尾都不做处理的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
27条回答
shijianzhou
2020-01-28 19:53
unsigned int i;
void main(void)
{
    .........


    i = 0;
    while(1)
    {
        if(i)
        {
            i++;
           if(i > (根据循环工作量取得一个常量经验值))
            {
                  // 认为接收到一帧, 对接收到的数据帧进行处理;
                  // 未防止接收数据丢失, 开启两个接收缓冲区, 关中断, 处理数据前切换接收缓冲区,  将 i 赋值为0等安全操作..... 重新开中断.
            }
        }
    }
}


void uartisr(void) interrupt 4
{
      if(RI)
      {
            RI = 0;

            // 将接收到的数据放入缓冲
             ........

            i = 1;
      }
}

一周热门 更多>