HAL_GPIO_WritePin(DHT11_PORT, DHT11_PIN, GPIO_PIN_SET); // 设置为输入模式 } uint8_t DHT11_CheckResponse(void) { uint8_t retry = 0; // 等待DHT11响应,响应信号为80us低电平 while (DHT11_DATA_READ() && retry < 100) { delay_us(1); retry++; } // 检查是否收到响应 if (retry...
首先主机发送开始信号(也叫复位信号),即:拉低数据线,保持t1(至少18ms,最大不得超过30ms)时间,然后主机拉高数据线t2(20~40us)时间,然后主机读取DHT11的响应,正常的话,DHT11会拉低数据线,并保持t3(40~50us)时间来作为响应信号,然后DHT11拉高数据线,保持t4(40~50us)时间后,DHT11开始输出数据。 图33.1.2.1 ...
利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门STM32单片机。这是第二部分针对单总线通信的一个典型例子——DHT11温湿度传感器,主要用于对STM32中GPIO模块和单总线通信的理解。 硬件模块 STM32F103R4 DHT11 LCD1602 74HC373 软件工...
//从DHT11读取一次数据//temp:温度值(范围:0~50°)//humi:湿度值(范围:20%~90%)//返回值:HAL_OK,正常;1,读取失败uint8_t DHT11_Read_Data(uint8_t *humiH,uint8_t *humiL,uint8_t *tempH,uint8_t *tempL){ uint8_t buf[5]; uint8_t i; DHT11_Rst(); if(DHT11_Check...
基于你的需求,以下是一个详细的STM32与DHT11温度传感器的集成代码示例,包括初始化STM32与DHT11的通信接口、编写读取DHT11数据的函数、在STM32中设置定时器定时读取DHT11的数据、将读取到的温湿度数据通过串口输出以及对代码进行测试和调试的建议。 1. 初始化STM32与DHT11的通信接口 首先,需要初始化STM32的GPIO和UAR...
DHT11是一款温湿度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。传感器内部湿度和温度数据共有40 bit的数据一次性传...
DHT11是很常用的温湿度传感器,时序也比较简单,如下所示: 直接给出HAL库的驱动: 1 微秒级延时函数 HAL库并没有直接的微秒级延时函数,下面是自己实现的微秒堵塞延时函数(使用定时器TIM3); /** * @brief 微秒级延时 */ void bsp_delay_us(uint16_t us) ...
硬件开发板:STM32F407VET6 软件平台:cubemax+keil+VScode 1 DHT11工作原理 1.1 简介 DHT11温湿度传感器是一种数字式温湿度传感器,其工作原理基于集成了湿度感测元件和NTC温度感测元件的传感器模块。以下是DHT11温湿度传感器的工作原理: 湿度感测:DHT
但是由于stm32f103很难得到1us的时钟,而且使用HAL库没有直接的寄存器操作,所以需要一定的修改,这里主要讲如何修改。 DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃。 DHT11利用单总线协议,因此有严格的时序。