带我装逼带我飞 发表于 2015-11-29 15:31:12

【NUCLEO-L476RG开发】使用OLED显示温度与相对湿度(基于DHT11)

本帖最后由 带我装逼带我飞 于 2015-11-29 15:30 编辑

    收到NUCLEO-L476RG开发板已有一段时间,但由于工作原因,没能及时分享开发笔记:(。但是好饭不怕晚啊,请谅解:) 好了,废话不多说,直接进入主题吧。
1.开发环境:NECLEO-L476RG开发板 + DHT11温湿度传感器 + 0.96寸OLED + MDK-ARM;
2.引脚连接:(L476)PC4 -- (OLED)CS   
            PC5 -- RES
            PC6 -- DC
            PC8 -- D0
            PC9 -- D1
          PA10 -- Dout(DHT11)  
3.硬件初始化
   (1)初始化OLED相关引脚,配置为通用推挽输出;
   (2)使用模拟SPI方式,初始化OLED的控制器SSD1306,通过写SSD1306的寄存器完成OLED的初始化;
   (3)初始化DHT11数据输出引脚,配置为通用推挽输出,DHT11传感器与单片机通过Dout引脚进行双向通信(类似DS18B20)。
4.获取DHT11传感器的数据
   (1)数据用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms 左右,数据分小数部分和整数部分;
   (2)一次完整的数据传输为 40bit,高位先出。数据格式:
       8bit 湿度整数数据 + 8bit 湿度小数数据 + 8bi 温度整数数据 + 8bit 温度小数数据 + 8bit 校验和;
   (3)数据传送正确时,校验和数据等于“8bit 湿度整数数据 + 8bit 湿度小数数据 + 8bi 温度整数数据 + 8bit 温度小数数据”所得结果为末 8 位。
   (4)读取到DHT11的数据保存在结构体中,用于OLED显示:
      typedef struct
      {
      uint8_thumi_int;         //湿度的整数部分
      uint8_thumi_deci;      //湿度的小数部分
      uint8_ttemp_int;          //温度的整数部分
      uint8_ttemp_deci;      //温度的小数部分
      uint8_tcheck_sum;      //校验和
       } DHT11_Data_TypeDef;
5.OLED显示温度,相对湿度
   在上一步提取到的DHT11的数据,调用OLED的驱动程序,将温度,湿度的值显示在OLED上,到此就完成了整个项目。
6.总结
关于OLED和DHT11传感器,网上资源还是比较丰富的,所以这个就不详细的来介绍了。最后有一点需要注意的是,为了满足DHT11的操作时序,需要用到us级的定时,所以我修改了官方库的HAL_Delay()函数延时的单位,最小是1us(原来的是1ms)。这是修改后的滴答定时器初始化代码:                





disheng4688 发表于 2015-11-29 20:16:36

谢谢分享。学习了。

JackieLaura 发表于 2015-11-30 09:19:30

谢谢楼主分享

anger0925 发表于 2015-11-30 10:28:19

谢谢分享            

hello! 发表于 2015-11-30 18:25:08

:(:(分享下例程吧

yanhaijian 发表于 2015-11-30 18:46:56

楼主的用户名我喜欢。

带我装逼带我飞 发表于 2015-11-30 21:37:04

yanhaijian 发表于 2015-11-30 18:46
楼主的用户名我喜欢。

:lol:lol:lol这位兄台的话我喜欢

带我装逼带我飞 发表于 2015-11-30 21:42:38

本帖最后由 带我装逼带我飞 于 2015-11-30 21:45 编辑

工程文件超过上传限制大小了

带我装逼带我飞 发表于 2015-11-30 21:45:49

hello! 发表于 2015-11-30 18:25
分享下例程吧

需要的留邮箱吧,我发给你:)

hello! 发表于 2015-11-30 21:48:49

带我装逼带我飞 发表于 2015-11-30 21:45
需要的留邮箱吧,我发给你

好的,谢谢 1197945877@qq.com
页: [1] 2 3 4 5
查看完整版本: 【NUCLEO-L476RG开发】使用OLED显示温度与相对湿度(基于DHT11)