ErrorStatus Check_PMSensor_DataValid(void) // 检查数据有效函数 { uint16_t Cal_CheckSum; uint16_t Buffer_CheckSum; uint16_t Buffer_Len; uint8_t i; ErrorStatus Result = ERROR; if((PM_Sensor_RxBuffer[0] == 'B')&&(PM_Sensor_RxBuffer[1] == 'M')) { Buffer_Len = (uint16_t)((PM_Sensor_RxBuffer[2] << 8) | PM_Sensor_RxBuffer[3]); Buffer_CheckSum = (uint16_t)((PM_Sensor_RxBuffer[Buffer_Len + 2] << 8) | PM_Sensor_RxBuffer[Buffer_Len + 3]); Cal_CheckSum = 0; for(i=0;i<(Buffer_Len + 2);i++) { Cal_CheckSum += PM_Sensor_RxBuffer[i]; } if(Cal_CheckSum == Buffer_CheckSum) Result = SUCCESS; } return Result; }
时间: 2024-02-26 08:55:23 浏览: 28
判断输入数据,是否为有效数字
这是一个函数的声明和实现,函数的作用是检查从PM传感器接收到的数据是否有效。该函数会计算接收到的数据的校验和和接收到的数据中的校验和是否相等,如果相等,则返回SUCCESS,否则返回ERROR。具体来说,该函数会检查接收到的数据头是否为“BM”,并获取接收到的数据长度(Buffer_Len)。然后,该函数会计算从数据头到数据尾(校验和之前)的所有数据的和(Cal_CheckSum),并将接收到的数据中的校验和(Buffer_CheckSum)与计算出的校验和(Cal_CheckSum)比较,判断接收到的数据是否有效。
阅读全文