打印
[STM32F4]

【NUCLEO-F446ZE】CubeMX下使用RTOS

[复制链接]
1279|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Ketose|  楼主 | 2016-4-13 00:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
CubeMX真是个好东西,使用Cube你的工作量就只有一点点,今天我们使用CubeMX来生成一个带RTOS的3个LED流水灯。废话不多说了。
原理图:

原理图上没有标出LD1,其实LD1是接在PB0上的。
首先是用CubeMX配置时钟如下:

配置PB0,PB7,PB14为GPIO_Output

使能FREERTOS,并添加一个任务:

在配置FREERTOS的Timebase Source时CubeMX强烈建议我们使用定时器,而不使用SysTick,这点有点弄不明白,因为现在绝大多数的RTOS系统时基都是使用SysTick,CubeMX竟然冒天下之大不韪让我们使用Timer来做系统时基,不知用意为何,难道是HAL的底层驱动里也使用到了SysTick?这个问题我没有深究了,希望高人给予指点。
一切配置好之后,生成MDK-ARM V5的项目,打开该项目添加任务代码:
/* StartLedTask function */
void StartLedTask(void const * argument)
{
    /* USER CODE BEGIN StartLedTask */
    /* Infinite loop */
    for(;;)
    {
        HAL_GPIO_TogglePin(LD1_GPIO_Port,LD1_Pin);
        osDelay(500);
        HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);
        osDelay(500);
        HAL_GPIO_TogglePin(LD3_GPIO_Port,LD3_Pin);
        osDelay(500);
    }
    /* USER CODE END StartLedTask */
}
别忘了添加头文件 #include "gpio.h"

大功告成,编译,下载。。。。。。。。。你应该可以看到流水灯了吧!


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

本版积分规则

个人签名:我最讨厌两种人:一是有种族歧视的; 二是黑人;三是不识数的!

64

主题

3211

帖子

15

粉丝