使用CubeMX快速搭建FREERTOS

如何使用STM32快速搭建FREERTOS

小编之前一直使用正点原子家的产品, 最近准备学习学习TOUCHGFX,要用到HAL+RTOS,原子家的使用起来不方便。于是琢磨着使用STM32CUBEMX直接生成FREERTOS+HAL工程。非常方便,在这里分享给大家

CUBEMX安装

安装CUBEMX前, 需要安装JAVA,注意一定要下载64位JAVA才可,大家可参考这个教程https://jingyan.baidu.com/article/3aed632ede2a2f7010809114.html进行下载安装
2022.6.18更新:Win11,cubemx6.5版本,已经不需要自己安装java环境了。
在这里插入图片描述
CUBEMX软件可以直接从官网下载最新版,链接在此https://www.st.com/en/development-tools/stm32cubemx.html。软件直接选择最新版安装。
在这里插入图片描述

装好后(首次打开可能需要更新, 耐心等待),点击下图位置安装相应的支持包。我这里使用的是正点原子F407最小系统板

安装MCU支持包
安装MCUY支持包

创建第一个工程

1,选择MCU型号
选择MCU在这里插入图片描述
2,配置SYS
点击左边的SYS选项卡,选择Debug模式为SW。注意这里将时钟源换成了Timer1。这个时钟源是给HAL库提供时钟的。HAL在运行一些超时监测的代码时, 需要一个时钟源提供时钟,一般用systick。但是本例中systick被RTOS占用。所以修改HAL时钟源为Timer1.
在这里插入图片描述
3,配置RCC
这里使用的是外部晶振
在这里插入图片描述
4,配置一个LED引脚
在这里插入图片描述
5,配置RTOS
V1, V2 的区别我也不大清楚。网上也没搜索到,这里暂且V1。 大家有知道的请在下方留言。FREERTOS内部的配置不在这里介绍了,这里不改动任何配置
在这里插入图片描述
6,配置时钟树
我用的是外部8M晶振, 参数如下。这里仅做参考,大家根据自己的情况配置,只要不报错应该都没啥问题。
在这里插入图片描述
7,配置工程选项
注意:Application structure 建议选择Advanced, 小编之前用Basic, 在代码重新生成时会把usercode覆盖掉(代码书写位置正确的情况下也会这样)。
在这里插入图片描述
8,生成代码
小编比较习惯用单独的.c.h 文件,大家按习惯来
在这里插入图片描述
9,测试
至此, 我们的RTOS已经完成了, 为了验证一下,我们可以写一个小程序验证一下

生成的freertos里, cubemx已经为我们创建好了一个任务defaultTask, 我们直接将我们的代码塞到这个线程里即可。

在freertos.c里添加如下代码:

void StartDefaultTask(void const * argument)
{
  /* USER CODE BEGIN StartDefaultTask */
  /* Infinite loop */
  for(;;)
  {
		HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_9);//翻转电平
		osDelay(500);				//延时+调度
  }
  /* USER CODE END StartDefaultTask */
}



完活



PS,关于CUBEMX生成的FREERTOS
ST在FREERTOS的基础上做了封装,大家可以打开cmsis_os.c就可以看到。所有关于freertos的操作全部被再封装了一遍, 好处就是即使不同的RTOS, 用户代码也不会改变。而且ST的封装感觉挺好用的。大家根据自己的情况来。

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菠萝地亚狂想曲

送我一瓶农夫山泉?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值