[第二期 空气质量分析仪]第1周作业

发布于 2019-08-27 14:24:04
废话
好久好久没有认真学习了,最少一两年没好好学习了,被工作、生活都消磨的快废掉了。拿出自己以前做的一款开发板上面尽是灰尘。当看到这期学习营时忽然有了学习的冲动,应该是看过rt-thread这款rtos的一些介绍后感觉太棒了,为了不让自己太颓废了,我要开始继续慢慢的拿出一点时间给自己充充电了。


学习rt-thread四天来完成了以下实践。

开发环境的搭建:
1.mdk软件的安装,以前已安装,当前版本V5.162.STM32Cube MX的安装,以前的版本是V4.0,打不开rtt的cube工程。升级到最新的V5.3版本的过程中出现STM32CubeMX依赖的java运行环境jre版本过低的情况。又回头安装新版本的jre1.8,之后才将STM32Cube MX的V5.3版本安装成功。3.env的下载,用于重新生成工程。
新BSP
的创建:
安装官网文档就可以了,但在github上看了不太方便,有小伙伴提供了用typora软件看下载的.md文件。的确是个好办法,用有道云笔记也可以看.md文档。按照文档做出来BSP新工程在编译时出现STM32F1的HAL固件库中缺少stm32f1xx_hal_exti.h文件的错误。具体的原因是你的CUBEMX是新版的,生成的hal_confg.h里面带了#includestm32f1xx_hal_exti.h但是RTT里面的是库不是最新的,里面没有这个文件,所以就报错了。你想解决这个问题把库升级到最新就行了。解决方法见该网页,https://fastadmin.rt-thread.org/ask/question/421314.html补充知识点1:stm32f1xxHAL库下载介绍
https://blog.csdn.net/qq_15647227/article/details/54847639
LED
模块、接口及测试程序:
1.模块的创建2.接口的定义1和2均可以参考官方的给的例程。
int count = 1;
/* set LED0 pin mode to output */
rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);

while (count++)
{
rt_pin_write(LED0_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED0_PIN, PIN_LOW);
rt_thread_mdelay(500);
}
值得提出的是此处的count必须先赋值1。
KEY
模块、接口及测试程序:
碰到的问题,如下1.
/* led0_on 和led0_off函数要在key_init定义,除非已在头文件中声明*/
void led0_on(void *args)
{
rt_pin_write(LED0_PIN, PIN_LOW);
}

void led0_off(void *args)
{
rt_pin_write(LED0_PIN, PIN_HIGH);
}

void key_init(void)
{
rt_pin_mode(KEY0_PIN, PIN_MODE_INPUT_PULLUP);
rt_pin_attach_irq(KEY0_PIN, PIN_IRQ_MODE_FALLING, led0_on, RT_NULL);
rt_pin_irq_enable(KEY0_PIN, PIN_IRQ_ENABLE);

rt_pin_mode(KEY1_PIN, PIN_MODE_INPUT_PULLUP);
rt_pin_attach_irq(KEY1_PIN, PIN_IRQ_MODE_FALLING, led0_off, RT_NULL);
rt_pin_irq_enable(KEY1_PIN, PIN_IRQ_ENABLE);
}
2.在main函数中使用key_init()函数前得先写led_init()函数。3.不清楚做了什么操作导致github上不去了,有空得解决一下。
把dht11驱动程序添加进工程,编译程序:
将sensor_dallas_dht11.c和sensor_dallas_dht11.h文件放在了驱动文件夹下,在【bsp\stm32\libraries\HAL_Drivers】目录下。修改【bsp\stm32\libraries\HAL_Drivers】目录下的 SConscript 文件,加入温湿度驱动。编译时出现找不到sensor.h文件,这是因为使用了软件包而不是直接自己写的驱动。解决方式是在env的menuconfig中加入该软件包,然后用scons –target=mdk5重新构建工程。scons –target=mdk5 –s中的-s参数是不显示编译细节。
用串口调试工具接收当前的温湿度值:
刚上电时,前550左右的数据都差的比较多,到550个之后才正常了。原因不详。

第一周任务完成心得,中国有句古话叫拳怕少壮,真是至理名言。学了四天rt-thread,全身酸疼。做技术的真心不容易,身心疲惫。学习固然重要,金钱固然重要,然后身体才是第一位的。工作又忙起来了,希望自己能把接下来3周的学习任务完成好,最后感谢群里两位工程师杨工、陈工及其他小伙伴的帮助了。

temp1.jpg
temp2.jpg

查看更多

关注者
0
被浏览
744
6 个回答
beebird
beebird 2019-08-27
yangjie 发表于 2019-8-27 15:31
你已经跨出了一大步,继续努力,加油加油~~


谢谢鼓励:lol
beebird
beebird 2019-08-27
yangjie 发表于 2019-8-27 15:36
你的数据多久读一次


我没有修改代码,看源码更新数据的频率是1Hz。
xuchengzhu
xuchengzhu 2019-10-11
解决方式是在env的menuconfig中加入该软件包
这个软件包的具体目录能告知一下吗?我实在找不到
beebird
beebird 2019-10-16
xuchengzhu 发表于 2019-10-11 16:24
解决方式是在env的menuconfig中加入该软件包
这个软件包的具体目录能告知一下吗?我实在找不到 ...


http://packages.rt-thread.org/

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友