DHT11编程

实验:用数码管显示温湿度

dht11.h

#ifndef _DHT11_H
#define _DHT11_H
#include "stm32f10x_conf.h"extern void dht11_init(void);
extern void Get_Dht_Value(char *buf);
#endif

dht11.c

#include"dht11.h"
#include"bitband.h"
#include"delay.h"void set_dht_out(void)
{GPIO_InitTypeDef Gpio_Value;//初始化Gpio_Value.GPIO_Mode=GPIO_Mode_Out_PP;//指定模式-推免输出Gpio_Value.GPIO_Pin=GPIO_Pin_10;//10号引脚Gpio_Value.GPIO_Speed=GPIO_Speed_50MHz;//设置接口速度GPIO_Init(GPIOC	,&Gpio_Value);	
}void set_dht_in(void)
{GPIO_InitTypeDef Gpio_Value;//初始化Gpio_Value.GPIO_Mode=GPIO_Mode_IPU;//上拉输入模式Gpio_Value.GPIO_Pin=GPIO_Pin_10;//10号引脚GPIO_Init(GPIOC,&Gpio_Value);	
}void dht_out_status(int n)
{set_dht_out();if(n==1)PCOut (10)=1;elsePCOut (10)=0;
}int dht_in_status(void)
{set_dht_in();return PCIn(10);
}void dht11_init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
}void Get_Dht_Value(char *buf)
{int ret=0,i=0;int times=0;u8 data=0;dht_out_status(1);//拉高数据线dht_out_status(0);//拉低数据线delay_ms(20);//至少拉低18msdht_out_status(1);//拉高数据线do{    //第一次等用超时处理ret=dht_in_status();times++;delay_us(2);//延时2微秒}while(ret==1&&times<=20);//最高延时40usif(times>20)return  ;while(!dht_in_status());//死等拉高for(i=0;i<40;i++){while(dht_in_status());//死等拉低while(!dht_in_status());//死等拉高delay_us(40);data<<=1;if(dht_in_status()==1)//判断获得的是高电平哥还是低点平	{data|=1;}if((i+1)%8==0)//连续转存{buf[i/8]=data;data=0;}}dht_out_status(1);//拉高数据线
}

main.c

#include"iwdg.h"
#include"led.h"
#include"fmq.h"
#include"key.h"
#include"delay.h"
#include"inte.h"
#include"hc138.h"
#include"dht11.h"
void h0(void)
{Led_On(0);Led_On(1);Led_On(2);}
void h1(void)
{Fmq_On();
}
void h2(void)
{Led_Off(0);Fmq_Off();}int main(void)
{char buff[5]={0};int dht_data=0;int i=0,j=0;inte_init();Led_Init();	Key_Init();Fmq_Init();delay_init();iwdg_init(5);hc138_init();dht11_init();set_inte_handler(h0,h1,h2);while(1){Get_Dht_Value(buff);dht_data=buff[0]*100+buff[2];show_digital_Out(dht_data);}return 0;
}

运行截图

前两位为湿度,后两位为温度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/299106.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kylin-Desktop-V10-SP1-General-Release-2303-X86_64-海光版(hygon c86)镜像虚拟机安装

选择60G 自定义硬件 设置内存、cpu、网络为桥接 点击开启虚拟机 在下一步中输入用户名和密码 等待安装完成 取出安装介质&#xff1a;先关机&#xff0c;再按照下图操作 移除&#xff0c;并确认 再开机&#xff0c;等待启动成功 系统版本

04|提示工程(上):用少样本FewShotTemplate和ExampleSelector创建应景文案

04&#xff5c;提示工程&#xff08;上&#xff09;&#xff1a;用少样本FewShotTemplate和ExampleSelector创建应景文案 当你用 print 语句打印出最终传递给大模型的提示时&#xff0c;一切就变得非常明了。 您是一位专业的鲜花店文案撰写员。 对于售价为 50 元的 玫瑰 &…

基于 Python 和Surprise库,新手轻松搭建推荐系统

解密基于用户的推荐系统。 1、简介 在数据时代&#xff0c;推荐系统是提升用户体验的重要工具。今天介绍如何使用亚马逊的电影评分数据集创建电影推荐系统。 2、数据加载与探索 首先&#xff0c;通过加载和探索数据集开启数据分析过程。首先导入Pandas和Numpy&#xff0c;这…

2024年【天津市安全员C证】找解析及天津市安全员C证模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 天津市安全员C证找解析考前必练&#xff01;安全生产模拟考试一点通每个月更新天津市安全员C证模拟考试题题目及答案&#xff01;多做几遍&#xff0c;其实通过天津市安全员C证模拟考试题库很简单。 1、【多选题】《建…

飞桨星河社区助力大模型时代开发者砥砺前行!

大模型引领AI新浪潮&#xff0c;助力人工智能实现从感知理解到生成创造的飞跃。飞桨星河社区&#xff0c;覆盖深度学习初学者、在职开发者、企业开发者、高校教师、创业者等&#xff0c;是国内最大的AI开发者社区&#xff0c;以飞桨和文心大模型为核心&#xff0c;集开放数据、…

疫病困扰,本文或许能帮你拨云见日

1、《伤寒论》中的大青龙&#xff0c;五苓散&#xff0c;小柴胡&#xff0c;麻杏甘石等就是千百年来&#xff0c;老祖宗给我们留下的方子&#xff0c;也被无数实践证明有效。 2、中西医思路不同&#xff0c;西医研究病毒&#xff0c;治疗手段就是对付病毒。而中医用中草药推动…

Scala安装

Scala安装使用 windows安装,配置环境变量 以下载Scala2.11为例&#xff0c;操作在Windows中安装Scala。 官网下载scala2.11&#xff1a;All Available Versions | The Scala Programming Language下载好后安装。双击msi包安装,记住安装的路径。配置环境变量&#xff08;和配…

如何改进SEO?学会这5个策略就没问题

引言&#xff1a; 在当今竞争激烈的在线市场中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;对于网站的成功至关重要。通过采用正确的策略和技巧&#xff0c;你可以提高网站在搜索引擎结果页面中的排名&#xff0c;吸引更多的有针对性的流量。在本文中&#xff0c;我们…

优雅地使用python读取excel

python读取excel可以用pandas模块&#xff0c;功能比较强大 在对应的虚拟环境里面用anaconda安装&#xff08;如果你的python运行环境是用anaconda配置的&#xff09;&#xff0c;如果没有添加虚拟环境&#xff0c;直接在终端里面pip3 install pandas安装就可以。 import pan…

Mac使用Python的tkinter显示异常解决方案

显示异常的原因&#xff1a; macOS版本>12 & python版本<3.9.8 参考文档 :https://www.python.org/download/mac/tcltk/ 如果python版本过低&#xff1a; brew upgrade python: 升级python版本 brew install python-tk: 安装最新的tk版本 python -m tkinter : 弹…

ADAudit Plus助力企业内部员工行为审计:解密安全控制利器

在当今信息技术高度发达的时代&#xff0c;企业内部的数据安全日益成为管理者关注的焦点。内部员工行为审计作为数据保护的一项重要措施&#xff0c;为企业提供了对内部操作和数据访问的全面监控。而在这一领域&#xff0c;ADAudit Plus凭借其卓越的功能和性能傲然脱颖而出&…

Mysql创建事件报错

如上&#xff0c;navicat中创建Mysql事件报错 原因&#xff1a;如上代码第三行自动生成异常 正常应该是&#xff1a; CREATE EVENT XXX.Untitled ON SCHEDULE EVERY 1 DAY STARTS 2023-12-25 08:00:00 DO CALL test_log();