当前位置: 首页 > news >正文

哪有做外单的图片素材网站手机微信小程序怎么制作

哪有做外单的图片素材网站,手机微信小程序怎么制作,wordpress怎么做好看的图片页面,进销存管理系统免费版基于STM32CT#xff0c;利用DHT11采集温湿度数据#xff0c;在OLED上显示。一定要阅读DHT11数据手册。 1、 DHT11温湿度传感器 引脚说明 1、VDD 供电3.3#xff5e;5.5V DC 2、DATA 串行数据#xff0c;单总线 3、NC 空脚 4、GND 接地#xff0c;电源负极 硬件电路 微…基于STM32CT利用DHT11采集温湿度数据在OLED上显示。一定要阅读DHT11数据手册。 1、 DHT11温湿度传感器 引脚说明 1、VDD 供电3.35.5V DC 2、DATA 串行数据单总线 3、NC 空脚 4、GND 接地电源负极 硬件电路 微处理器与DHT11的连接典型应用电路如上图所示DATA上拉后与微处理器的I/O端口相连。 1.典型应用电路中建议连接线长度短于5m时用4.7K上拉电阻大于5m时根据实际情况降低上拉电 阻的阻值。 2. 使用3.3V电压供电时连接线尽量短接线过长会导致传感器供电不足造成测量偏差。 3. 每次读出的温湿度数值是上一次测量的结果欲获取实时数据,需连续读取2次但不建议连续多次 读取传感器每次读取传感器间隔大于2秒即可获得准确的数据。 以上硬件部分来自于DHT11数据手册为方便硬件部分DATA直接接STM32的IO口。 硬件部分接好线之后需要知道单片机和 DHT11如何通信即将数据传给单片机显示在OLED上。 2、单总线协议 DHT11与单片机之间通过简化的单总线协议通信。(和从机通过1根线进行通信在一条总线上可挂接的从器件数量几乎不受限制。既可传输时钟又能传输数据而且数据传输是双向的。 单总线即只有一根数据线系统中的数据交换、控制均由单总线完成。设备主机或从机通过一个漏极开路或三态端口连至该数据线以允许设备在不发送数据时能够释放总线而让其它设备使用总线单总线通常要求外接一个约 4.7kΩ 的上拉电阻这样当总线闲置时其状态为高电平。由于它们是主从j结构只有主机呼叫从机时从机才能应答因此主机访问器件都必须严格遵循单总线序列如果出现序列混乱器件将不响应主机。 重点理解下图的时序图就明白具体什么样后续的代码也是基于这个图编写的协议。 上下两张图相同 通信过程分为主机(stm32)发送起始信号-从机(DHT11)发送响应信号-从机发送数据-从机发送结束信号 DHT11上电后一直采集数据DATA数据线由上拉电阻拉高(或者单片机IO口设置为高电平)一直保持高电平此时 DHT11的 DATA 引脚处于输入状态时刻检测外部信号。主机起始信号单片机IO口为输出模式输出低电平并保持一段时间然后再回高电平也就是释放总线,另外IO口转为开漏输入模式。从机响应信号DATA引脚检测到外部信号有低电平时等待外部信号低电平结束后输出 一段时间的低电平作为应答信号紧接着输出一段时间的高电平也就是释放总线通知单片机准备接收数据。输出40位数据: 湿度高8位 湿度低8位 温度高8位 温度低8位 校验位 校验位 湿度高8位 湿度低8位 温度高8位 温度低8位 ,不正确则放弃重新接收数据。 输出数据时位数据0的格式为 54 微秒的低电平和 23-27 微秒的高电平位数据1的格式为 54 微秒的低电平加68-74微秒的高电平。结束信号数据输出完后继续输出持续时间的低电平后转为输入状态由于释放总线随之变为高电平。但DHT11内部重测环境温湿度数据并记录数据等待外部信号的到来。 该表来自DHT11数据手册说明了起始信号、响应信号、发送数据0/1、结束信号中高低电平的持续时间编写代码时也要参照这着表格和上面的时序图编写。 3、DHT11代码 DHT11.c #include stm32f10x.h // Device header #include Delay.h#define DHT11_IO GPIOB #define DHT11_Pin GPIO_Pin_12 #define DHT11_RCC RCC_APB2Periph_GPIOB//设置IO输出 void DHT11_MOSI_Init(void) {RCC_APB2PeriphClockCmd(DHT11_RCC,ENABLE);GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_ModeGPIO_Mode_Out_PP; //推挽输出GPIO_InitStruct.GPIO_PinDHT11_Pin;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(DHT11_IO,GPIO_InitStruct);GPIO_SetBits(DHT11_IO,DHT11_Pin);}//设置IO为输入 void DHT11_MISO_Init(void) {RCC_APB2PeriphClockCmd(DHT11_RCC,ENABLE);GPIO_InitTypeDef GPIO_InitStruct;//浮空输入引脚电平来自外界GPIO_InitStruct.GPIO_ModeGPIO_Mode_IN_FLOATING; GPIO_InitStruct.GPIO_PinDHT11_Pin;GPIO_InitStruct.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(DHT11_IO,GPIO_InitStruct);}//单总线通信 开始 void DHT11_Start(void) {DHT11_MOSI_Init(); //highGPIO_ResetBits(DHT11_IO,DHT11_Pin);//low 主机拉低总线18-30ms然后释放Delay_ms(25);GPIO_SetBits(DHT11_IO,DHT11_Pin); //high 释放Delay_us(13); //保持高电平等待从机响应 根据数据手册设置的主机释放总线的时间DHT11_MISO_Init(); //io为输入 等待从机}// 接收数据高位先行 uint8_t DHT11_ReceiveByte(void) {uint8_t Byte0x00;for(int i0;i8;i){//数据054us低电平23-27高电平 数据154us低电平68-74高电平while(GPIO_ReadInputDataBit(DHT11_IO,DHT11_Pin)0);//等待低电平时间过去Delay_us(40); //高电平持续时间超过40 说明数据为1if(GPIO_ReadInputDataBit(DHT11_IO,DHT11_Pin)1) //读到为1说明为高电平{ Byte|(0x80i); //将数据位写入 Byte 中从高位到低位 高位先行while(GPIO_ReadInputDataBit(DHT11_IO,DHT11_Pin)1);//等待高电平结束}}return Byte;} //接收数据 //该函数每次读出的温湿度数值是上一次读取测量的结果 char DHT11_GetData(uint8_t *Humi,uint8_t* Temp) {char Mark; //温度 零下还是零上uint8_t Humi_H,Humi_L,Temp_H,Temp_L,Check; //温湿度高低位、校验位DHT11_Start();//通信if(GPIO_ReadInputDataBit(DHT11_IO,DHT11_Pin)0){while(GPIO_ReadInputDataBit(DHT11_IO,DHT11_Pin)0); //DHT11响应完毕while(GPIO_ReadInputDataBit(DHT11_IO,DHT11_Pin)1); // 准备接收高电平之后的数据//湿度高8位 湿度低8位 温度高8位 温度低8位 校验位 传感器输出40位数据Humi_HDHT11_ReceiveByte(); Humi_LDHT11_ReceiveByte();//等于0Temp_HDHT11_ReceiveByte();Temp_LDHT11_ReceiveByte();//温度低8位中的Bit8为1则表示负温度否则为正温度,后7位为小数部分CheckDHT11_ReceiveByte();if(Humi_HHumi_LTemp_HTemp_LCheck) //校验{*HumiHumi_H; //传送数据*TempTemp_H;//小数部分不做处理//如果温度的低8位的最高位为1表示温度为负数if((Temp_L0x80)0x80){Mark-;}}//DHT11继续输出低电平54微秒后转为输入状态释放总线变为高电平。while(GPIO_ReadInputDataBit(DHT11_IO,DHT11_Pin)0);GPIO_SetBits(DHT11_IO,DHT11_Pin); //释放总线}return Mark; } //获取实时温湿度 //连续获取两次数据DHT11模块会在上一次结束信号时重测温湿度数据 char DHT11_GetRealData(uint8_t *Humi,uint8_t* Temp) {char Mark;DHT11_GetData(Humi,Temp);Delay_ms(1000);Delay_ms(1000);Delay_ms(100); //数据手册规定读取传感器数据大于2sMarkDHT11_GetData(Humi,Temp);return Mark;}DHT11.h #ifndef __DTH11_H #define __DTH11_H//上电后等待1秒才调用函数 char DHT11_GetData(uint8_t *Humi,uint8_t* Temp); char DHT11_GetRealData(uint8_t *Humi,uint8_t* Temp);//实时温湿度 void DHT11_Start(void); #endifmain.c #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include DTH11.Huint8_t Humi,Temp; int main(void) {OLED_Init();DHT11_Start();OLED_ShowString(1, 1, Humi:);OLED_ShowString(2, 1, Temp:);Delay_ms(1000);while (1){DHT11_GetData(Humi,Temp);DHT11_GetRealData(Humi,Temp);OLED_ShowNum(1,6,Humi,2);OLED_ShowNum(2,6,Temp,2);} }
http://www.hkea.cn/news/14548765/

相关文章:

  • 网页设计需求分析范文郑州seo网络营销
  • 深圳网站建设 壹起航seo整站优化哪家好
  • 自己设置网站怎么做外贸出口流程
  • 企业网站建设的背景和目的纯净水企业怎样做网站
  • 网站开发完没人运营网站模板和源码
  • 网站根域名是什么营销网站建设推广
  • 外贸用什么网站开发客户响应式WordPress企业主题
  • 网站知名度仿网站教程
  • 做视频的背景音乐哪里下载网站怎么制作图片文件夹
  • 国外 视频上传网站源码免费传媒
  • 网站特色做网站能自己找服务器吗
  • h5响应式企业网站源码简约网站模版
  • 商业网线多少钱一年关键词排名优化营销推广
  • 设计素材网站免费的提高手机性能的黑科技软件
  • 深圳本地网站建设深圳科技公司排名10
  • 网站上线稳定后工作seo网站优化怎么做
  • 建设银行官网首页网站南山片区石家庄百度推广电话
  • 网站建设的服务和质量迅腾网络网站建设有限公司
  • 搜讯网站开发站内搜索工具
  • 课程培训网站模板下载网站不想被百度抓取
  • 长兴县建设管理网站做网站优化的公司
  • 网站制作很好 乐云践新凡建网站
  • 建立互联网公司网站wordpress微信底部导航菜单
  • 微网站开发 在线商城凡科网页登录
  • 公主岭网站建设规划WordPress标题删除_
  • 做网站如何选择数据源音乐视频制作软件app
  • 有没有什么好的网站wordpress首页调用文章缩略图
  • 怎么生成域名做网站免费网站空间怎么做
  • 公司网站需求说明书淘宝的网站建设
  • 企业宣传网站模板下载创研科技网站