当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]本项目利用FreeRTOS和STM32CubeIDE,在RT- thread RT- Spark开发板上实现了一个简单的实时操作系统(RTOS)应用。

1. 介绍

本项目利用FreeRTOS和STM32CubeIDE,在RT- thread RT- Spark开发板上实现了一个简单的实时操作系统(RTOS)应用。

单板上运行4个并发任务(线程):

•通过AHT21传感器在LCD上显示温度

•使用电位器调整RGB LED亮度

•在LCD上显示递增计数器

•闪烁状态指示灯

LCD是在任务之间共享的,因此使用互斥锁来保护独占访问。所有任务都在无限循环中运行,并在每次更新后延迟自己,以便其他任务可以运行。

2. 硬件和软件要求

2.1硬件

•RT- thread RT- Spark开发板(基于stm32)

•板载1.3" 240×240 LCD (ST7789, FSMC/8080接口)

•1板载AHT2温湿度传感器(I²C)

•外置RGB LED

•外部电位计(连接到ADC引脚)

•板载用户LED

•Micro USB电缆,用于电源和编程

2.2软件

•STM32CubeIDE(用于ioc和C代码)

•FreeRTOS(通过STM32CubeMX / CubeIDE集成)

3. 项目概述和任务设计

该应用程序使用四个FreeRTOS任务:

1.温度显示任务

•通过I²C从AHT21传感器读取温度

•将值转换为人类可读的格式

•使用LCD互斥锁安全地将温度写入LCD

2.RGB亮度控制任务

•使用ADC读取电位器

•将ADC值映射到PWM占空比

•更新一个或多个通道的RGB LED改变亮度

3.计数器显示任务

•维护一个递增的整数计数器

•定期锁定LCD互斥锁,更新LCD上的计数器,并解锁互斥锁

4.LED闪烁任务

•以固定的间隔切换一个简单的状态LED

•用作显示RTOS正在运行的视觉心跳

主要功能:

•初始化硬件和外设

•清除LCD

•创建所有四个任务

•启动调度程序。

•可选配置低功耗/休眠模式

4. 一步- -步骤指南

4.1创建STM32CubeIDE项目

1.在STM32CubeIDE中创建一个新的STM32项目。

•文件→新建→STM32项目

•选择RT - Spark板使用的MCU(如果在板数据库中出现,则选择RT - Spark板本身)。

•给它起一个名字,比如FreeRTOS_RT_Spark_Project。

2.生成启用HAL驱动程序的基本项目。

•最初接受默认的时钟设置。

•完成向导以打开。ioc配置。

4.2.Ioc引脚和外设配置

4.2.1配置AHT20传感器I²C

1.打开.ioc文件中的Pinout & Configuration选项卡。

2. 启用I2C外设(例如,I2C1或I2C2,取决于RT - Spark原理图和文档)。

3. 设置引脚以匹配RTSpark AHT21连接:

•SCL引脚:GPIO AHT SCL(来自原理图1.3)

•SDA引脚:GPIO AHT SDA

4. 在I2C设置中:

•选择“I2C”模式

•配置速度(例如,标准模式100 kHz,除非你改变它)

添加:I²C配置和所用引脚的屏幕截图。

4.2.2配置LCD接口(FSMC/8080)

1. 使能通过8080并行接口驱动ST7789 LCD的FSMC/FMC (Flexible Static Memory Controller)。

2. 根据RT - Spark原理图(图1.1)配置数据线db0 - db7、控制线CS、DC、WR、RD和背光引脚(LCD_BL)。

3. 根据您使用的现有LCD库的要求设置相应的引脚(这应该与repo代码匹配)。

4. 确保GPIO的速度和输出类型符合LCD驱动代码的要求。

4.2.3配置RGB LED和电位器

1.RGB led (pwm):

•选择一个TIMx定时器,并在连接到RGB LED引脚(由RTSpark板定义)的通道上启用PWM模式。

•将每个颜色通道配置为PWM输出,具有合适的频率(例如,1-10 kHz)。

•将引脚映射到RGB LED焊盘。

2.电位计(ADC):

•使能ADC外设(如ADC1)。

•选择连接到电位器的通道(请参阅文档/电路板手册)。

•根据代码的读取方式设置连续或单一转换模式。

4.2.4配置状态指示灯和其他gpio

1. 识别用于闪烁的LED引脚(板载用户LED)。

2. 在Pinout中设置为GPIO Output。

3. 配置代码所需的任何其他gpio(例如,重置引脚,背光启用等)。

4.3在STM32CubeMX中启用FreeRTOS

1. 在。iocMiddleware部分,启用FreeRTOS。

2. 选择一个与您的项目设置匹配的基本堆方案(例如,heap_4)。

3. 配置:

•每个任务的最小堆栈大小

•总堆大小(足够4个任务+其他分配)

4.4生成代码和集成库

1. 点击项目→生成代码(或按齿轮图标),让STM32CubeIDE基于ioc生成源文件。

2. 在项目中添加/导入LCD驱动程序和AHT21传感器驱动程序:

•复制LCD驱动程序。c和。h文件到Core/Src和Core/Inc(或适当的文件夹)。

•也复制AHT21驱动程序的。c和。h文件。

•确保项目属性→C/ c++通用→路径和符号中的包含路径是正确的。

3. 将这些驱动程序包含在应用程序代码中(例如,main.c或专用的app.c):

4.5实现互斥锁和任务

现在我们用FreeRTOS把所有的东西捆绑在一起。

4.5.1创建LCD互斥锁

在你的应用程序代码中(例如,main.c的顶部附近):

在main()中启动调度器之前:

任何时候你访问LCD在一个任务:

4.5.2温度显示任务

伪结构(适应你现有的代码):

4.5.3 RGB亮度任务(锅控)

4.5.4计数器显示任务

4.5.5 LED闪烁任务

4.6创建任务并启动调度程序

在硬件初始化之后和vTaskStartScheduler()之前的main()中:

4.7构建、flash和测试

1.在STM32CubeIDE中构建项目。

•修复任何缺失的包含或类型错误,使用您的repo作为参考。

2.通过USB连接RT - Spark板。

3. 选择正确的调试配置并刷新固件。

4. 复位单板,观察:

•液晶显示温度和计数器(在不同的区域或风格)。

•RGB LED亮度随着电位器的转动而变化。

•状态指示灯以正常速率闪烁。

5. 它是如何工作的(摘要)

•FreeRTOS管理四个任务,每个任务都有一个无限循环和自己的职责。

•任务通过调用vTaskDelay()来进行协作,这将产生CPU,以便其他任务可以运行。

•LCD互斥锁确保一次只有一个任务使用LCD,防止重复写入。

•AHT21传感器提供超过I²C的实时温度数据。

•电位器输入通过ADC读取并映射到PWM占空比以控制RGB亮度。

•LED闪烁任务为RTOS调度器提供了一个简单的视觉心跳。

6. 可能的改进

•你可以把这个实验扩展成一个更高级的RTOS项目:

•从AHT21添加湿度显示,并在LCD上显示温度/湿度。

•使用队列在任务之间发送数据(例如,传感器任务→显示任务)。

•添加按钮输入以更改显示模式或RGB模式。

•更积极地实现低功耗模式,并在定时器或中断时唤醒。

7. 结果和输出

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭