通过STM32cube移植FreeRTOS

1.在cube中配置时钟

本问使用的是tim6是基础时钟,有点是节省资源且配置简单
此处说明一下,因为FreeRTOS会占用系统时钟,所以我们需要重新选一个时钟源,而笔者用的是STM32F407,tim6是基础时钟,优点是节省资源且配置简单。小伙伴们在这可自行定义其他的定时器。

2.时钟树的配置

在这里插入图片描述
注意一下红色框中的选项,其他的就没什么了。

3.FreeRTOS配置

在这里插入图片描述
勾选FreeRTOS,进行任务点灯任务创建。然后根据原理图对控制LED灯引脚进行初始化,此处省略。

4.生成代码

在这里插入图片描述
已经有很多大神在此处为大家讲解了,小的就在此处省略了。

5.keil设置

在这里插入图片描述
在这里插入图片描述

6.代码修改

可在main.c最开始的地方对灯进行一个初始化状态。

HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);//初始化灯状态

然后找到MX_FREERTOS_Init()函数,我们进入这个函数,找到刚才我们创建的void vLEDTask(void *argument) 点灯任务函数,在这个函数中,我们对灯进行反转操作。
freertos.c

void vLEDTask(void *argument)
{
  /* USER CODE BEGIN vLEDTask */
  /* Infinite loop */
  for(;;)
  {
    HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
    osDelay(500);
  }
  /* USER CODE END vLEDTask */
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值