ZigBee、NBIOT等无线通信技术交流学习,可以加入QQ技术交流群:575036716
本章内容的源码包可以到CSDN的下载版块进行下载:点击打开链接
DHT11是一款数字温湿度传感器,有效测量范围是温度0~50℃,湿度20~95%,DHT11是单总线通信设备,有自己的单总线通信协议(单线双向协议),一次通讯时间4ms左右。
在设计DHT11驱动程序时,需要提供两个API:初始化、读取温湿度数据!
我们使用的主控芯片是TI的CC2530,主要是考虑到程序可以用在ZigBee中开发温湿度传感器设备,驱动程序在编写时,必须充分考虑编程规范,从而达到高可维护性、可读性的特点。
程序头文件:
- /*******************************************************************
- * @file hal_dht11.h
- * @brief Temperature & Humidity Sensor Driver - DHT11
- *
- * Copyright (c) 2017~2020 ShenZhen IoT-College Technology Co., Ltd.
- * All rights reserved.
- *
- * @version 1.0.0
- * @author IoT-College <1805593021@qq.com>
- * @date 2017-12-11 13:18:22
- *
- * @note 1. The official flagship store:
- * Unopened
- *
- * 2. Blog:
- * *GitHub: https://github.com/IoT-College
- * *CSDN: https://blog.csdn.net/IoT_College
- * *StackOverflow:
- * https://stackoverflow.com/users/9555987/iot-college
- *
- * 3. QQ Communication group:
- * *Group 1: 575036716
- * *Group 2: 684572410
- * *Group 3: 587518203
- *******************************************************************/
- #ifndef HAL_DHT11_H
- #define HAL_DHT11_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*******************************************************************
- * Includes
- *******************************************************************
- */
- #include "hal_delay.h"
- /*******************************************************************
- * Constant-Macros And Enumerations
- *******************************************************************
- */
- /** @brief DHT11 GPIO
- */
- #define HAL_DHT11_PORT 0
- #define HAL_DHT11_PIN 6
- /** @brief DHT11 Data
- * Temperature,
- * Humidity
- */
- typedef struct
- {
- uint8 temp;
- uint8 humi;
- bool ok;
- }halDHT11Data_t;
- /*******************************************************************
- * API
- *******************************************************************
- */
- /**