[STM32U3] 【NUCLEO-U3C5ZI 测评】stm32cubemx配置freertos

[STM32U3] 【NUCLEO-U3C5ZI 测评】stm32cubemx配置freertos
【前言】freertos是最常用的操作系统。移植它有好几种方式。一是使用源码配置从官网下载源码然后手工添加到工程中比较复杂。二是使用mdk中的pack包直接导入然后配置tick。也比较简单。三是使用stm32cube X-cbue-freertos包可以使用图形化配置相对于说是最友好的一种配置。本篇将分享如何使用stm32cubeMX来实现freertos的移植。【实施步骤】1、在stm32cubeMX下载x-cube-freertos包。安装好后就可以在工程中启用与配置了。2、开启x-cube-freertos保持黙认配置即可。3、添加任务到此配置结束4、由于freertos默认使用systick来做为心跳那莫与他跟sys是有冲突的即HAL_Tick)如果不修改就会出现问题。因此我们需要在sys中修改心跳为tim。5、当我们给sys配置为TIM6时由于他的中断级别跟systick是一样的如果他的中断比较低的话那莫在有些外设配置的hal库中如果用到了hal_tick_get就会取不到tick导至卡死或者超时。因此需要修改一下他的中断级别【测试】我这里添加了开发板上的两个led分别为led2\led3。生成工程后在app_freertos.c中分别翻转。复制/* USER CODE END Header_StartDefaultTask */void StartDefaultTask(void *argument){/* USER CODE BEGIN defaultTask *//* Infinite loop */for(;;){HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin);osDelay(200);}/* USER CODE END defaultTask */}/* USER CODE BEGIN Header_StartLEDTask *//*** [url/u/brief]brief[/url] Function implementing the ledTask thread.* param argument: Not used* retval None*//* USER CODE END Header_StartLEDTask */void StartLEDTask(void *argument){/* USER CODE BEGIN ledTask *//* Infinite loop */for(;;){HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);osDelay(500);}/* USER CODE END ledTask */}【实验现象】编译下载后可以看到LED2与LED3分别以不同的频率闪烁。。---------------------作者lulugl链接https://bbs.21ic.com/icview-3520353-1-1.html来源21ic.com此文章已获得原创/原创奖标签著作权归21ic所有任何人未经允许禁止转载。