ZigBee_串口读取_SDS011激光PM2.5传感器

ZigBee_串口读取_SDS011激光PM2.5传感器_第1张图片
ZigBee_串口读取_SDS011激光PM2.5传感器_第2张图片
ZigBee_串口读取_SDS011激光PM2.5传感器_第3张图片
ZigBee_串口读取_SDS011激光PM2.5传感器_第4张图片

  //PM2.5数据采集,这个采用串口0读取数据,协议栈版本,非裸机
    uchar ch;
    uint16 len;
    uint8 i=0;
    while(!(len=Hal_UART_RxBufLen(0))); //等待串口接收到数据,len可以测试Hal_UART_RxBufLen(0)返回的数据长度,测得是1
    while(Hal_UART_RxBufLen(0)) // 开始读取串口的数据
    {
      pm_rxlen=HalUARTRead (0,&ch, 1);
      RXBUF[i]=ch;
      HalUARTWrite(0,&ch,1); // 这应该是用来测试的   
      if(++i == 10) break; // 读取够10个字符后离开while循环
      while(Hal_UART_RxBufLen(0)==0); //串口没数据,继续等待
    }
    if((RXBUF[0]==0XAA)&&(RXBUF[1]==0XC0)&&(RXBUF[9]==0XAB))
    {
        pm_data=((float)(RXBUF[3]*256+RXBUF[2]))/10;
    }

你可能感兴趣的:(ZigBee)