当前位置: 首页 > news >正文

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);
    }
}

相关文章:

  • mysql中查询没有主键的表
  • 《Python深度学习》第五讲:文本处理中的深度学习
  • 一学就会:A*算法详细介绍(Python)
  • springcloud, nacos使用rabbitMq
  • 前端面试项目拷打
  • Django:内置和自定义中间件
  • Java集合的底层原理
  • 深入解析ES6+新语法:复杂的迭代器与生成器
  • 【css酷炫效果】纯CSS实现手风琴折叠效果
  • navicat导出文件密码解密
  • vue3二次封装tooltip实现el-table中的show-overflow-tooltip效果
  • 003 SpringCloud整合-LogStash安装及ELK日志收集
  • Spring Boot集成JWT:打造安全的RESTful API
  • Linux上离线安装PyTorch教程:No module named ‘_bz2:No module named ‘_lzma‘
  • 单元测试mock
  • 蓝桥杯备考:特殊01背包问题——》集合subset
  • 两款软件助力图片视频去水印及图像编辑
  • PHP转GO Go语言环境搭建(Day1) 常见问题及解决方案指南
  • Node.js系列(3)--集群部署指南
  • K8S-etcd服务无法启动问题排查
  • 金融监管总局:力争实现全国普惠型小微企业贷款增速不低于各项贷款增速
  • 中方对中美就关税谈判的立场发生变化?外交部:中方立场没有任何改变
  • 陕南多地供水形势严峻:有的已呼吁启用自备水井
  • 江苏淮安优化村级资源配置:淮安区多个空心村拟并入邻村
  • 《中国医药指南》就“宫颈癌等论文出现男性病例”致歉:辞退涉事编辑
  • 中小企业数字化转型的破局之道何在?