123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #ifndef AM2301_H_
- #define AM2301_H_
- #include <stdint.h>
- #include "common_config.h"
- #include "stm32f4xx.h"
- /* Настройки */
- #define DHT_TIMEOUT 10000 //Количество итераций, после которых функция вернёт пустые значения
- #define DHT_POLLING_CONTROL 1 //Включение проверки частоты опроса датчика
- #define DHT_POLLING_INTERVAL_DHT11 2000 //Интервал опроса DHT11 (0.5 Гц по даташиту). Можно поставить 1500, будет работать
- #define DHT_POLLING_INTERVAL_DHT22 1000 //Интервал опроса DHT22 (1 Гц по даташиту)
- //#define DHT_IRQ_CONTROL //Выключать прерывания во время обмена данных с датчиком
- typedef enum
- {
- CONNECTION_ERR = 0,
- READ_ERR,
- PARITY_ERR,
- CONNECTION_OK,
- DATA_OK,
-
- } AM2301_t;
- /* Структура возвращаемых датчиком данных */
- typedef struct {
- float hum;
- float temp;
- uint8_t ErrorCycle; // Счетчик ошибок циклов преобразования температуры
- uint8_t SensorState; // Состояние датчика (0 - датчик работает, 1 - неисправность)
- } at2301_data_t;
- /* Структура объекта датчика */
- typedef struct {
- gpio_t ow_pin;
- IRQn_Type irq;
- } at2301_sensor;
- extern at2301_data_t sAM2301Sensorsdata[MAX_T_SENSORS];
- void DHT_Task_Init(void);
- #endif
|