下位机不停地向PC发送相同的指令,间隔为100ms,指令的长度是一定的10Byte,而且指令的帧头已知为"***"。
但是指令不是全部需要,只有程序在特定的时候需要读取该指令。请问串口数据应该怎么处理?串口读数据是一个专门的线程处理的,用API实现。
线程中需要不停地从缓冲区读数据,并提取出指令存下来,需要的时候直接取吗?
还是不用读数据,只有需要指令的时候再从缓冲区读取数据再提取敕令呢?

解决方案 »

  1.   

    请问串口数据应该怎么处理?串口读数据是一个专门的线程处理的,用API实现。
    线程中需要不停地从缓冲区读数据,并提取出指令存下来,需要的时候直接取吗?
    还是不用读数据,只有需要指令的时候再从缓冲区读取数据再提取敕令呢?方法1:
    callBack pFun =NULL;
    pFun回调函数指针thread()
    {
       byte tmpbuf[100];
       while(1){    if(pFun!=NULL){
          callback pfun();
        }else{
          recv(tmpbuf)
        }
      }
    }想要如何处理更改回调函数指针,
    不处理回调置空指针方法2:
    也可用信号量同步,方法很多
    不需要数据的时候直接阻塞,
    需要时,给个信号量