打印
[应用相关]

通过STM32cube移植FreeRTOS

[复制链接]
895|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-6-15 14:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1.在cube中配置时钟



此处说明一下,因为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);//初始化灯状态
1
然后找到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 */
}
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/gu411/article/details/139657635

使用特权

评论回复
沙发
而服务器人| | 2024-7-26 15:12 | 只看该作者
在main.c最开始的地方对灯进行一个初始化状态。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1931

主题

15650

帖子

12

粉丝