标签:界面 man nucleo 引入 注意 one 排查 公众 www
前言本文研究STM32F411RE_NUCLEO如何使用RT_Thread开源软件包快速驱动DHT11温湿度传感器。
1.RT_Thread开源软件包简介
软件包运行于RT-Thread物联网操作系统平台上,面向不同应用领域的软件组件形成一个个软件包,由软件包描述信息,软件包源代码或库文件组成。
(1) 类似Linux Kconfig方式的menuconfig
(2) 支持Linux、Windows、MacOS跨平台使用
(3) 管理系统功能,组件以及线上软件包
软件包下载统计:
由上图可知,RT_Thread软件包逐渐的受大家欢迎,目前RT_Thread每年开巡城演唱会,哈哈,大家可以关注RT_Thread公众号及时了解RT_Thread最新发展情况。
2.Kconfig基础知识
RT-Thread 借助 Kconfig 文件生成的配置文件 rtconfig.h 来配置系统,Kconfig 文件是各种配置界面的源文件。
举个简单的例子,我们修改kconfig文件内容,增加一组显示在env配置工具的配置信息。
(1)查看当前映射关系
我们先看下bsp/stm32/stm32f411-st-nucleo/board/下的kconfig文件内容
可以看到menu "Onboard Peripheral Drivers"栏目内容为空,env控制台输入menuconfig,结果如下:
可以看到Onboard Peripheral Drivers、on-chip Peripheral Drivers和kconfig文件中的配置对应,打开Onboard Peripheral Drivers ,为空。
(1)修改kconfig文件
增加一组DHT11的配置信息,如下:
查看env工具下Hardware Drivers Config/Onboard Peripheral Drivers:
使能Enable DHT11 drivers,可以看到子栏目显示出来了。
这个时候退出保存后,会在rtconfig.h中显示PKG_USING_DHT11,至此,我们达到了通过修改kconfig文件,自定义配置信息的目的。
关于kconfig更多使用,请参考rt_thread官网文档中心:https://www.rt-thread.org/document/site/programming-manual/kconfig/kconfig/
1.下载dht11软件包
登录rt_thread官网软件包页面,http://packages.rt-thread.org/
搜索dht11,如下所示:
2.环境配置
(1) 配置DHT11
上述介绍Kconfig的时候,我们已经修改了kconfig,而修改的内容正式驱动DTH11所必须的,原因如下:
我们下载的软件包需要依赖两个全局变量,这个时候我们可以手动定义在rtconfig.h中,但是这样会引入一个问题,当你下次再使用env工具增加其他工具,退出保存后,我们在rtconfig.h中的手动定义内容会丢失,因为rtconfig.h中文件是根据env配置自动生成更新,而我们从后台下载的软件包不在env配置工具上面,所以需要咱们把PKG_USING_DHT11放到kconig文件下,然后可以通过env工具打开即可,如果读者按照我得步骤,此时我们已经修改好了PKG_USING_DHT11,接下来,我们继续修改env配置信息,打开PKG_USING_DHT11_SAMPLE.
查看rtconfig.h变化:
(2) 配置Sensor
进入RT-Thread Components/Device Drivers/目录,打开Using Sensor device drivers
1.硬件连接
查看原理图,找到PB12引脚:
实物连接:
2.下载rtthread.bin
在Env控制台输入scons编译代码,然后将rtthread.bin文件烧录到stm32中即可。重新上电设备Log如下:
从Log信息可以看出,我们已经成功驱动起来了DHT11温湿度传感器。
四、结语
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/
一叶孤沙出品:一沙一世界,一叶一菩提
RTT&&STM32开发实践之外设篇1:驱动DHT11温湿度传感器
标签:界面 man nucleo 引入 注意 one 排查 公众 www
原文地址:https://blog.51cto.com/14616151/2452861