RTT&&STM32开发实践以外设篇1:驱动DHT11温湿度传感器

前言

本文研究STM32F411RE_NUCLEO如何使用RT_Thread开源软件包快速驱动DHT11温湿度传感器。git

1、基础知识

1.RT_Thread开源软件包简介github

软件包运行于RT-Thread物联网操做系统平台上,面向不一样应用领域的软件组件造成一个个软件包,由软件包描述信息,软件包源代码或库文件组成。
包管理ide

(1) 相似Linux Kconfig方式的menuconfig工具

(2) 支持Linux、Windows、MacOS跨平台使用操作系统

(3) 管理系统功能,组件以及线上软件包3d

软件包下载统计:
tongjicode

由上图可知,RT_Thread软件包逐渐的受你们欢迎,目前RT_Thread每一年开巡城演唱会,哈哈,你们能够关注RT_Thread公众号及时了解RT_Thread最新发展状况。blog

2.Kconfig基础知识ip

RT-Thread 借助 Kconfig 文件生成的配置文件 rtconfig.h 来配置系统,Kconfig 文件是各类配置界面的源文件。开发

举个简单的例子,咱们修改kconfig文件内容,增长一组显示在env配置工具的配置信息。

(1)查看当前映射关系

咱们先看下bsp/stm32/stm32f411-st-nucleo/board/下的kconfig文件内容
origin_config

能够看到menu "Onboard Peripheral Drivers"栏目内容为空,env控制台输入menuconfig,结果以下:
origin_show

能够看到Onboard Peripheral Drivers、on-chip Peripheral Drivers和kconfig文件中的配置对应,打开Onboard Peripheral Drivers ,为空。
onboard

(1)修改kconfig文件

增长一组DHT11的配置信息,以下:
kconfig_modify

查看env工具下Hardware Drivers Config/Onboard Peripheral Drivers:
modify_show

使能Enable DHT11 drivers,能够看到子栏目显示出来了。
modify_enable

这个时候退出保存后,会在rtconfig.h中显示PKG_USING_DHT11,至此,咱们达到了经过修改kconfig文件,自定义配置信息的目的。
config_res

关于kconfig更多使用,请参考rt_thread官网文档中心:https://www.rt-thread.org/document/site/programming-manual/kconfig/kconfig/

2、使用实例

1.下载dht11软件包

登陆rt_thread官网软件包页面,http://packages.rt-thread.org/
package_show

搜索dht11,以下所示:
package_dht11

2.环境配置

(1) 配置DHT11

上述介绍Kconfig的时候,咱们已经修改了kconfig,而修改的内容正式驱动DTH11所必须的,缘由以下:
code_dht11

咱们下载的软件包须要依赖两个全局变量,这个时候咱们能够手动定义在rtconfig.h中,可是这样会引入一个问题,当你下次再使用env工具增长其余工具,退出保存后,咱们在rtconfig.h中的手动定义内容会丢失,由于rtconfig.h中文件是根据env配置自动生成更新,而咱们从后台下载的软件包不在env配置工具上面,因此须要我们把PKG_USING_DHT11放到kconig文件下,而后能够经过env工具打开便可,若是读者按照我得步骤,此时咱们已经修改好了PKG_USING_DHT11,接下来,咱们继续修改env配置信息,打开PKG_USING_DHT11_SAMPLE.
env_dht11_sample

查看rtconfig.h变化:
dht_res_sample

(2) 配置Sensor

进入RT-Thread Components/Device Drivers/目录,打开Using Sensor device drivers
env_open_sensor

3、运行

1.硬件链接

查看原理图,找到PB12引脚:
sch_pb12

实物链接:
shiwu

2.下载rtthread.bin

在Env控制台输入scons编译代码,而后将rtthread.bin文件烧录到stm32中便可。从新上电设备Log以下:
RTT&&STM32开发实践以外设篇1:驱动DHT11温湿度传感器

从Log信息能够看出,咱们已经成功驱动起来了DHT11温湿度传感器。

4、结语

1.总结:

本节完,实际操做过程当中须要注意的地方有以下几点:

(1) kconfig使用

对于一些env工具默认没有提供的组件,我的认为手动修改kconfig,使其出如今env工具中便于以后更多组件的统一管理,若是不修改kconfig组件,直接定义在rtconfig.h文件中,后续增长其余组件时候,咱们以前在rtconfig.h中定义的宏将会消失,这样致使,每次增长一个组件,都须要手动添加回去,比较痛苦,因此咱们配置下kconfig.

(2) 组件使用

咱们下载了dht11组件,也配置了kconfig文件的时候,会发现scons编译仍然失败,此时不要怕,看错误提示,我这边看到提示找不到include "sensor.h"因而想起来没有用env配置工具打开sensor,总之遇到问题不要方,好好排查吧,实在解决不了,能够在群里和你们交流。

2.后记:

如您在使用过程当中有任何问题,请加QQ群进一步交流,也能够github提Issue。

QQ交流群:906015840 (备注:物联网项目交流)

github仓库地址:https://github.com/solitary-sand/rt_thread/

一叶孤沙出品:一沙一世界,一叶一菩提
wechat

相关文章
相关标签/搜索