这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【STM32H747I-DISCO试用】2、移植FreeRTOS

共2条 1/1 1 跳转至

【STM32H747I-DISCO试用】2、移植FreeRTOS

高工
2025-11-06 14:45:02     打赏

【前言】

在我使用touchGFX创建的示例工程中,CM7是创建好freertos的,但是CM4是没有使用freeRTOS的,这一篇我将分享如何在stm32h747中配置freertos并实现获取RTC时钟

STM32CubeMX配置】

1、使用stm32cubeMX打开工程,查看cm4是没有配置freertos的:


 2、在配置freertos是,我们需要了解的是需要配置一个给freertos的时基,这个最好是与cm4内核不要使用systick,这样我们就需要重新开启一个TIMCM4来使用。


图片2.png


我开启TIM8,但不配置,然后在SYS_M4中选择TIM8

 图片3.png

3、打开M4freeRTOS选项,修改TOTAL_HEAP_SIZE10000Bytes,同时开启USE_IDLE_HOOK,其余的保持不变。

 图片4.png

 

4、为了方便观察,我开启一个板载的LED灯,如何freertos正常跑起来时让他闪烁。

打开原理图,看到LED的原理图如下:

 图片5.png

我这里配置LED1IOPI12,推挽输出。

 图片6.png

更新工程。

【代码编写】

使用stm32cubeIDE打开工程,在M4的工程中的StartDefaultTask添加闪灯程序如下:

/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void *argument)
{
  /* USER CODE BEGIN 5 */
  /* Infinite loop */
  for(;;)
  {
  HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
  osDelay(500);
  HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
  osDelay(500);
  }
  /* USER CODE END 5 */
}

编译后下载到开发板,就可以看到LED在正常闪烁了。

【总结】

STM32的stm32cube生态可以让用户快速的使用图形化配置实现外设、RTOS的快速配置,可以轻松实现RTOS的移植。同时在配置RTOS时,注意要重新选择一个定时器来做为时基。





关键词: STM32H747I-DISCO     FreeRTOS    

助工
2025-11-06 18:14:39     打赏
2楼

楼主 好强大啊


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]