#pragma once #include "stm32f1xx_hal.h" #include "FreeRTOS.h" #include "semphr.h" #include class MHZ19C { public: explicit MHZ19C(UART_HandleTypeDef* huart); bool ReadCO2(uint16_t& ppm); void CalibrateZero(); SemaphoreHandle_t GetRxSemaphore() { return rxDoneSem; } private: UART_HandleTypeDef* uart; uint8_t txFrame[9]; uint8_t rxFrame[9]; SemaphoreHandle_t rxDoneSem; void BuildReadFrame(); uint8_t Checksum(uint8_t* data); };