Advertisement

STM32F407单片机与DHT11温湿度传感器的读写及串口屏显示软件工程源码.zip

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本资源提供基于STM32F407单片机通过I/O接口读取DHT11温湿度传感器数据,并将采集的信息传输至串口屏进行实时显示的完整软件工程源代码。 STM32F407单片机读取并显示OneWire_DHT11温湿度传感器数据(通过串口屏)的软件工程源码可以作为学习设计参考。 ```c int main(void){ /* 初始化所有外设、Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化串口并配置串口中断优先级 */ MX_DEBUG_USART_Init(); HMI_USARTx_Init(); DHT11_Init(); /* 无限循环 */ while (1) { if(DHT11_Read_TempAndHumidity(&DHT11_Data)==SUCCESS){ HMI_value_setting(page1.gross.val,DHT11_Data.humidity*10); HMI_value_setting(page1.net.val,DHT11_Data.temperature*10); printf(读取DHT11成功!-->湿度为%.1f %RH ,温度为 %.1f℃ \n, DHT11_Data.humidity,DHT11_Data.temperature); } else { printf(读取DHT11信息失败\n); } HAL_Delay(1000); } } /** 函数功能: 向串口屏发送数据 * 输入参数: 无 * 返 回 值: 无 */ void HMI_value_setting(const char *val_str,uint32_t value){ uint8_t tmp_str[30]={0}; uint8_t i; sprintf((char *)tmp_str,%s=%d,val_str,value); for(i=0;iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } HMI_USARTx->DR=0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); HMI_USARTx->DR=0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); HMI_USARTx->DR=0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } /** 函数功能: 向串口屏发送浮点数据 * 输入参数: 无 * 返 回 值: 无 */ void HMI_string_setting(const char *val_str,int32_t value){ uint8_t tmp_str[50]={0}; uint8_t i; float temp=(float)value; sprintf((char *)tmp_str,%s=\%.1f\,val_str,temp/100); for(i=0;iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } HMI_USARTx->DR=0xFF; } ```

全部评论 (0)

还没有任何评论哟~
客服
客服
  • STM32F407DHT11湿.zip
    优质
    本资源提供基于STM32F407单片机通过I/O接口读取DHT11温湿度传感器数据,并将采集的信息传输至串口屏进行实时显示的完整软件工程源代码。 STM32F407单片机读取并显示OneWire_DHT11温湿度传感器数据(通过串口屏)的软件工程源码可以作为学习设计参考。 ```c int main(void){ /* 初始化所有外设、Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化串口并配置串口中断优先级 */ MX_DEBUG_USART_Init(); HMI_USARTx_Init(); DHT11_Init(); /* 无限循环 */ while (1) { if(DHT11_Read_TempAndHumidity(&DHT11_Data)==SUCCESS){ HMI_value_setting(page1.gross.val,DHT11_Data.humidity*10); HMI_value_setting(page1.net.val,DHT11_Data.temperature*10); printf(读取DHT11成功!-->湿度为%.1f %RH ,温度为 %.1f℃ \n, DHT11_Data.humidity,DHT11_Data.temperature); } else { printf(读取DHT11信息失败\n); } HAL_Delay(1000); } } /** 函数功能: 向串口屏发送数据 * 输入参数: 无 * 返 回 值: 无 */ void HMI_value_setting(const char *val_str,uint32_t value){ uint8_t tmp_str[30]={0}; uint8_t i; sprintf((char *)tmp_str,%s=%d,val_str,value); for(i=0;iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } HMI_USARTx->DR=0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); HMI_USARTx->DR=0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); HMI_USARTx->DR=0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } /** 函数功能: 向串口屏发送浮点数据 * 输入参数: 无 * 返 回 值: 无 */ void HMI_string_setting(const char *val_str,int32_t value){ uint8_t tmp_str[50]={0}; uint8_t i; float temp=(float)value; sprintf((char *)tmp_str,%s=\%.1f\,val_str,temp/100); for(i=0;iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } HMI_USARTx->DR=0xFF; } ```
  • STM32F407DS18B20DEMO.zip
    优质
    本资源提供了一套使用STM32F407单片机与DS18B20温度传感器进行通信的示例代码,包括通过串口屏显示温度数据。适合初学者学习和参考。 STM32F407单片机读取并显示DS18B20温度传感器数据的示例程序源码可以作为学习参考。 ```c int main(void) { uint8_t DS18B20ID[8]; float temperature; /* 初始化所有外设,Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化串口并配置串口中断优先级 */ MX_DEBUG_USART_Init(); HMI_USARTx_Init(); while(DS18B20_Init()) { printf(DS18B20温度传感器不存在\n); HAL_Delay(1000); } printf(检测到DS18B20温度传感器,并初始化成功\n); DS18B20_ReadId(DS18B20ID); /* 无限循环 */ while (1) { temperature = DS18B20_GetTemp_MatchRom(DS18B20ID); printf(获取该序列号器件的温度:%.1f\n,temperature); HMI_value_setting(page1.gross.val,temperature * 10); HAL_Delay(1000); } } /** 函数功能: 向串口屏发送数据 * 输入参数: val_str - 字符串指针,value - 要发送的整数值 * 返回值: 无 */ void HMI_value_setting(const char *val_str,uint32_t value) { uint8_t tmp_str[30] = {0}; uint8_t i; sprintf((char *)tmp_str, %s=%d, val_str,value); for(i=0; iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } HMI_USARTx->DR = 0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI,UART_FLAG_TXE) == RESET); } /** 函数功能: 向串口屏发送浮点数据 * 输入参数: val_str - 字符串指针,value - 要发送的整数值 * 返回值: 无 */ void HMI_string_setting(const char *val_str, int32_t value) { uint8_t tmp_str[50] = {0}; uint8_t i; float temp=(float)value; sprintf((char *)tmp_str, %s=%.1f, val_str,temp); for(i=0; iDR=tmp_str[i]; while(__HAL_UART_GET_FLAG(&husartx_HMI,UART_FLAG_TXE) == RESET); } HMI_USARTx->DR = 0xFF; while(__HAL_UART_GET_FLAG(&husartx_HMI, UART_FLAG_TXE) == RESET); } ```
  • DHT11湿+OLED湿.zip
    优质
    本项目提供了一个基于DHT11温湿度传感器和OLED显示屏的简单实用电路设计,用于实时显示环境中的温度与湿度数据。 使用32单片机和DHT11温湿度传感器来测试环境中的温度和湿度,并将采集到的数据实时显示在OLED屏幕上。
  • 51DHT11湿12864结合使用
    优质
    本项目介绍如何将51单片机、DHT11温湿度传感器和12864液晶显示屏进行集成,实现环境温湿度的数据采集与实时显示。 uchar a[] = 温湿度传感器; uchar b[] = 温度:; uchar c[] = 湿度:; uchar d[] = 0123456789; typedef unsigned char U8; typedef unsigned int U16; U8 U8flag, k; U8 U8temp; U8 U8WD_H, U8WD_L, U8SD_H, U8SD_L, U8checkdata; U8 U8WDH_temp, U8WDL_temp, U8SDH_temp, U8SDL_temp, U8checkdata_temp; U8 U8comdata; void delay_1ms(uint n) { uint i,j; for(i=0;i<=n;i++) for(j=0;j<110;j++); } void delay_10us() { U8 i; i--;i--;i--;i--;i--;i--; } void write_com(uchar com) { rs = 0; rw = 0; en = 0; P2=com; delay_1ms(1); en=1; delay_1ms(1); en=0; } void write_data(uchar date) { rs=1; rw=0; en=0; P2=date; delay_1ms(1); en = 1; delay_1ms(1); en = 0; } void pos(uchar x, uchar y) { uchar pos; if(x==0) x=0x80; else if(x==1) x=0x90; else if(x==2) x=0x88; else if(x==3) x = 0x98; pos=x+y; write_com(pos); } void display(U8WD_H, U8WD_L, U8SD_H, U8SD_L) { U8 yi, er , san , si ; yi=U8WD_H/10; er = U8WD_H; san = U8SD_H /10 ; si = U8SD_H; pos(1,4); write_data(d[yi]); pos(1,5); write_data(d[er]); pos(2,4); write_data(d[san]); pos(2,5); write_data(d[si]); } void com() { U8 i; for(i=0;i<8;i++) { U8flag = 2; while((!SJK) && (U8flag++)); delay_10us(); delay_10us(); delay_10us(); U8temp = 0; if(SJK) U8temp=1; U8flag = 2; while((SJK) && (U8flag++)); if(U8flag==1) break; U8comdata <<= 1; U8comdata |= U8temp; }
  • DHT11湿511602结合使用
    优质
    本项目介绍如何将DHT11温湿度传感器与51单片机和1602液晶显示屏结合,实现环境温湿度数据采集与显示。 DHT11温湿度检测与1602显示的结合使用。
  • DHT11湿51
    优质
    本项目介绍如何使用DHT11温湿度传感器与51单片机进行数据交互,实现环境温度和湿度的实时监测,并展示基本代码编写及硬件连接方法。 DHT11温湿度传感器与STC12C5A60S2单片机读取温湿度的程序已经亲测可用。
  • DHT11湿1602在89C52应用
    优质
    本项目介绍如何使用DHT11温湿度传感器和1602液晶屏,在89C52单片机平台上显示实时环境的温度和湿度数据,适用于物联网初学者。 DHT11 温湿度传感器可以与 1602 显示屏配合使用,并且适用于 89C52 单片机。
  • DHT11湿LCD1602方案
    优质
    本项目介绍如何使用DHT11温湿度传感器结合LCD1602显示屏展示环境数据。通过简单的电路连接和编程实现温度、湿度实时监测,适用于各类小型气象站或智能家居系统。 温湿度传感器DHT11的LCD1602显示在Keil环境下使用C51编写的程序。
  • DHT11 湿模块 DHT22、SHT20 湿手册 C51 .zip
    优质
    本资源包含DHT11湿度模块和DHT22、SHT20温湿度传感器的手册,以及C51单片机读写的源代码,适用于嵌入式系统开发。 DHT11 湿度模块 DHT22温湿度模块 SHT20温湿度传感器 传感器手册+51读写软件程序源码:DHT11 温湿度传感器变送器 探头.pdf DHT11 温湿度模块 MK170.zip DHT22 数字温湿度传感器 AM2302 传感器.doc DHT22单总线数字温湿度传感器 MK755.rar HTU21D 温湿度传感器 模块 替代简单 SHT15 高精度传感器.zip SHT20温湿度传感器模块 数字型温湿度测量模块 I2C通讯小体积.rar SHTC3资料.zip
  • 51DHT11湿
    优质
    本项目介绍如何使用51单片机读取并处理DHT11温湿度传感器的数据,涵盖硬件连接、编程实现及环境监测应用。 本段落分享了关于51单片机与温湿度传感器DHT11的代码。