利用HAL库生成FreeRTOS代码

 时间:2026-02-13 23:56:44

1、首先,新建一个STM32CubeMX工程,在工程的“Pinout”页展开"FreeRTOS”项,勾选“Enabled”使能FreeRTOS功能。

利用HAL库生成FreeRTOS代码

2、原则上,使能FreeRTOS后即可直接生成代码,但是会弹出下面的对话框。原因在于选择了“Systick”做时间基准,而通常FreeRTOS避免直接使用它做时间基准,点击“Yes”可以忽略警告,如果不放心那么点击“No”重新编辑。

利用HAL库生成FreeRTOS代码

3、回到工程界面,切换到“Pinout”页,展开左侧的“SYS”,在Timebase Source右侧的列表中选择SysTick以外的单元,比如"TIM2",如果该TIM为灰色那么肯定是被其他功能占用了。

利用HAL库生成FreeRTOS代码

利用HAL库生成FreeRTOS代码

4、设置完SYS后,重新生成代码,这里选择的是Keil工程。

利用HAL库生成FreeRTOS代码

利用HAL库生成FreeRTOS代码

5、使用Keil打开刚刚生成的功臣改代码,切换到main.c,在main函数中会看到下面的代码:

  /* Create the thread(s) */


  /* definition and creation of defaultTask */
  osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
  defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);

这里实际上市创建了一个名为“defaultTask”的任务,它的任务函数名为StartDefaultTask,优先等级为Normal,堆栈长度128 。同时使用osThreadCreate创建该任务,赋值给defaultTaskHandle句柄。

利用HAL库生成FreeRTOS代码

6、右击osThreadDef选择“Go to definition of 'osThreadDef'”可以查看其详细定义。

利用HAL库生成FreeRTOS代码

7、我们可以在任务函数StartDefaultTask中添加自己的代码,比如调用printf打印一串字符。注意调用printf需要先实现fputc函数。

利用HAL库生成FreeRTOS代码

8、将代码烧录到PCB,测试如下。

利用HAL库生成FreeRTOS代码

  • 一起来捉妖怎么擂台快速打 最快攻速阵容
  • 工业声学成像仪工作原理及测试方法
  • 魔兽奥特曼大战小怪兽攻略
  • 如何快速解决穿衣小烦恼?
  • 狗狗的五大训练法则,你是如何训练狗狗的呢
  • 热门搜索
    苹果怎么查激活时间 芝麻信用分怎么提高 怎么醒酒 我的世界豹猫怎么驯服 我的世界怎么做床 钱英语怎么写 腿酸无力是怎么回事 海南大学怎么样 怎么看黄片 七彩虹显卡怎么样