欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > FreeRTOS移植并实现一个多任务程序

FreeRTOS移植并实现一个多任务程序

2025/3/24 13:04:23 来源:https://blog.csdn.net/cykaw2590/article/details/146296584  浏览:    关键词:FreeRTOS移植并实现一个多任务程序

打开CubeMX,点击如图

 输入自己的芯片型号,我这里是STM32F103C8T6

选择好后点击start project

依次改为

 依次改为

依次改为

在这里把频率改为72MHz

 用keil的改成MDK_ARM

 勾上

 生成代码即可

———————————————————————————————————————————

下面教学创建一个多任务程序

 在main函数的MX_FREERTOS_Init()调用之前写好你的初始化

 这些代码我都放在main函数上面了,这样就创建好了两个任务,这里注意了!栈大小不要太大,我亲测两个任务栈大小都设置为512的话只会运行一个任务,后面都设置为128才正常运行的,句柄可有可没有

void led_init(void)
{__HAL_RCC_GPIOB_CLK_ENABLE();GPIO_InitTypeDef GPIOBInit;GPIOBInit.Mode = GPIO_MODE_OUTPUT_PP;GPIOBInit.Pin = GPIO_PIN_10;GPIOBInit.Pull = GPIO_PULLUP;GPIOBInit.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOB,&GPIOBInit);
}void led_on(void)
{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_RESET);
}void led_off(void)
{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_SET);
}void led_turn(void)
{HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_10);
}
void led1_init(void)
{__HAL_RCC_GPIOB_CLK_ENABLE();GPIO_InitTypeDef GPIOBInit;GPIOBInit.Mode = GPIO_MODE_OUTPUT_PP;GPIOBInit.Pin = GPIO_PIN_11;GPIOBInit.Pull = GPIO_PULLUP;GPIOBInit.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOB,&GPIOBInit);
}
void led1_on(void)
{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_11,GPIO_PIN_RESET);
}void led1_off(void)
{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_11,GPIO_PIN_SET);
}void led1_turn(void)
{HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_11);
}
TaskHandle_t myTaskHandler;
void myTask ( void * arg)
{while(1){led_turn();vTaskDelay(500);}
}
TaskHandle_t myTask1Handler;
void myTask1 ( void * arg)
{while(1){led1_turn();vTaskDelay(500);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词