背景介绍:
RTT 架构训练二上次完成了用 stm32f4dsicovery 板上按键翻转 led 灯。
上次推文内容偏重于多线程思想传递、任务规划方法。重点是工程思维训练。
本节偏重于 RT-Thread 系统资源使用方法:主要是信号量的使用。
本节完成的功能
完成下图中大部分功能
13秒效果展示
1、lcd_keypad 按键翻转 led 2、lcd1602 每 3 秒切换一次显示(温湿度/光强)
代码文件总览
线程状态说明
引自[野火®]《RT-Thread 内核实现与应用开发实战—基于STM32》
Sugar图例之线程同步
信号量的一种应用
Sugar图例之线程互锁
信号量的另一种应用
本文跨度
虽有跨度,但读者都有迹可寻(都在 github 上,每个步骤都能用 SmartGit 看到 log 记录)。
公众号回复 train 得到 github 地址。
公众号回复 git 得到 SmartGit 视频讲解。
1、《RT-Thread 内核线程组成及调度》文中最下面的3个视频,当时只是 CubeMX 生成的工程,现在 DHT11 和 BH1750 的工程已经加入 RT-Thread。
(本文的代码就是从这两个单独的 demo 中获取的。)
2、《RTT架构训练二(手动翻转LED)》文中使用的是 stm32f4discovery 板上按键,本例改用 lcd_keypad 的上模拟量按键。原理图如下:
个人认为这种使用一个引脚带 5 个键的方法挺省引脚的,值得借鉴。
PS
Thanks RT-Thread!
Love you Andy Chen.
Sugar 的设备升级啦,从这个样子:
升级成这个样子:
感谢 RT-Thread 对 Sugar 的支持,这本是我2019年2月份过年时就想买的板,一直没下手,今天被惊喜了!
后面我准备让我 github 上训练用的代码同时支持两个板子,让小白读者看到怎样复用自己的代码在不同的板子上(STM32F407和STM32L475)。
关注作者
欢迎扫码关注我的公众号MultiMCU EDU
。
提示:在公众号“关于我”页面可加作者微信好友。
喜欢本文求点赞,有打赏我会更有动力。
请我喝杯咖啡如何?
微信 支付宝