打印
[STM32WBA]

【STM32WBA52CG测评】ThreadX移植+多任务点灯

[复制链接]
264|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 新曲难觅旧知音 于 2023-7-27 22:49 编辑

写在前面
本来啊,这期计划是做个蓝牙相关的实例来着。但是啊,这个蓝牙HID搞了好几天没搞懂。鸽一下,今天先整点别的。
一、ThreadX
它是专门为深度嵌入式实时 IoT 应用程序设计的。提供高级计划、通信、同步、计时器、内存管理和中断管理功能。非常易于使用,适用于要求极其苛刻的嵌入式应用程序。因为ThreadX 的占用空间非常小,最少只需要一个 2KB 的指令区域和 1 KB 的 RAM。
二、配置过程
首先呢,就是把我们的RCC调成外部晶振模式,

然后调节时钟,使芯片工作在最高的工作频率。注意框中的选择,拨到外部晶振HSE,和PLL
AHB5的倍频系数好像不能自动切换,注意手动拨到4分频

咱们就按顺序一点点往下配置。既然我们要点灯,就要把相应的GPIO口给配置一下。

因为我们要用到的RTOS把Systickg给占用了,但是裸机系统工作时也需要时钟源。这里就选择TIM17作为时钟源。

然后在中间件和软件包中选ThreadX,先只勾选核心就行了

然后是系统调度的频率,默认是100的意思是每秒进行100次的调度,我们改成1000,主要是为了方便。

基本配置就这些了,先生成下工程试试。
打开工程后首先编译下,可以看到0错误0警告。

需要手动添加的主要是在app_threadx.h里添加main.h头文件。这步是为了让编译器知道GPIO

调用ThreadX的api创建两个进程

然后就可以在app_azure_rtos.c里面写我们需要的任务了。
这里写了两个任务,任务一是1秒钟翻转一次LED2,任务二是1.5秒翻转一次LED3

烧录就可以看到现象。红灯以1.5s频率闪烁,绿灯以1秒闪烁。


使用特权

评论回复
沙发
gejigeji521| | 2024-1-12 16:59 | 只看该作者
这属于高级点灯。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

117

帖子

0

粉丝