[STM32U5]【NUCLEO-U5A5ZJ-Q测评】轻松移植FreeRTOS

本文介绍了如何在STM32U5系列的NUCLEO-U5A5ZJ-Q开发板上通过STM32CubeIDE安装并配置freertos,包括使用STM32CubeMAX管理软件包、自动生成任务代码,并给出了LED闪烁和LCD显示系统运行时间的示例。
摘要由CSDN通过智能技术生成

【前言】stm32U5系列默认是没有freertos的配置,需要自己安装freertos包,当然大家也可以自己通过源码安装。但是安装stm32的freertos包,在工程管理方面要简单得很多,stm32CubeIDE可以轻松的帮开发者配置相关的代码。
【开发环境】
win11
Stm32CubeIDE 1.13版本
【开发板】
NUCLEO-U5A5ZJ-Q
【freertos软件包安装】
1、stm32CbudeMAX设计界面,按alt+o可以打开软件包的管理界面。
 


按下图选择freertos的版本,然后点击安装。
 


在stm32CubeMax界面我们在中间件中找到X-CUBE-FREERTOS,选中后钩选CMSIS RTOS2。
 


按alt+K,自动生成代码。freertos默认生成的任务函数是在Core/Src下的app_freertos.c下面。
 


编写任务示例示代码:
此次代码是在我们面的驱动LCD的代码基础上添加的。【NUCLEO-U5A5ZJ-Q测评】硬件SPI驱动LCD屏 - STM32/STM8单片机论坛 - ST MCU意法半导体官方技术支持论坛 - 21ic电子技术开**坛
首选在任务startDefaultTask任务中添加一个led闪烁的代码:

复制
/* USER CODE END Header_StartDefaultTask */

void StartDefaultTask(void *argument)

{

  /* USER CODE BEGIN defaultTask */

  /* Infinite loop */

  for(;;)

  {

        HAL_GPIO_TogglePin(LED_GREEN_GPIO_Port, LED_GREEN_Pin);

    osDelay(500);

  }

  /* USER CODE END defaultTask */

}


其次在任务2中添加系统运行的显示代码。
/* USER CODE END Header_StartTask02 */
void StartTask02(void *argument)
{
  /* USER CODE BEGIN myTask02 */
  uint8_t show_str[20];
  uint32_t mytick;

  /* Infinite loop */
  for(;;)
  {
          mytick = HAL_GetTick();
          sprintf(show_str,"run times:%d",mytick/1000);
        ILI9488_printText(show_str,10,40,ILI9488_BLACK,ILI9488_WHITE,2);
    osDelay(1000);
  }
  /* USER CODE END myTask02 */
}



【实验效果】
任务1每500ms闪烁一次,任务2在LCD屏中输出系统运行的时间
---------------------
作者:lulugl
链接:https://bbs.21ic.com/icview-3340310-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值