STM32下完成基于FreeTROS的多程序任务

本文介绍了如何在STM32上基于FreeRTOS创建多任务,详细阐述了从简介、创建任务、烧录运行到查看运行结果的全过程,适合初学者实践。
摘要由CSDN通过智能技术生成

一、简介

FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为10.3.1版。

二、创建多任务

注:由于本次实验所用开发板为野火指南者103,所以使用代码均为野火官方提供。
2.1 在野火提供的文件中找到所需要的
在这里插入图片描述
2.2 打开框选的工程文件
在这里插入图片描述
2.3 由于该文件为官方所给的例程(链接见最后参考资料部分),所以已经进行了移植操作,可以看到所需freertos文件已经被添加成功。
在这里插入图片描述
在这里插入图片描述
2.4 野火提供的代码中创建了如下任务,为了缩短时间,我们把实验内容一的任务一同创建。
源代码
修改后代码如下:

 /* 创建任务句柄*/
static TaskHandle_t AppTaskCreate_Handle = NULL;
/* LED任务句柄 */
static TaskHandle_t LED1_Task_Handle = NULL;
/* hello任务句柄 */
static TaskHandle_t hello_Task_Handle = NULL;
/* AHT20任务句柄 */
static TaskHandle_t AHT_Task_Handle = NULL;

在这里插入图片描述

三、烧录及运行

3.1 编译运行
在这里插入图片描述
可以看到指定位置成功生成了hex文件。
在这里插入图片描述

3.2 烧录到STM32开发板中
注:此处电脑及开发板之间采用串口连接。操作过程参考《零死角玩转STM32—F103指南者》

3.2.1 安装USB 转串口驱动—CH340 版本。
注:请右键使用管理员身份安装,否则可能会失败。
安装成功后可以在计算机-管理-设备管理器-端口中查看。
在这里插入图片描述
3.2.2 安装mcuisp软件。
在这里插入图片描述

3.2.3 用usb链接电脑和开发板(USB转串口接口),并打开开发板开关。
在这里插入图片描述

3.2.4 打开 mcuisp 软件进行如下配置:
①搜索串口,设置波特率 115200;
②选择要下载的 HEX 文件;
③校验、编程后执行;
④DTR 低电平复位,RTS 高电平进入bootloader;
⑤开始编程。
注:如果出现一直连接的情况,按一下开发板的复位键即可。

在这里插入图片描述

/**
  *********************************************************************
  * @file    main.c
  * @author  fire
  * @version V1.0
  * @date    2018-xx-xx
  * @brief   FreeRTOS v9.0.0 + STM32 LED
  *********************************************************************
  * @attention
  *
  * ʵÑéƽ̨:Ò°»ð STM32ȫϵÁпª·¢°å 
  * ÂÛ̳    :http://www.firebbs.cn
  * ÌÔ±¦    :https://fire-stm32.taobao.com
  *
  **********************************************************************
  */ 
 
/*
*************************************************************************
*                             °üº¬µÄÍ·Îļþ
*************************************************************************
*/ 
/* FreeRTOSÍ·Îļþ */
#include "FreeRTOS.h"
#include "task.h"
/* ¿ª·¢°åÓ²¼þbspÍ·Îļþ */
#include "bsp_led.h"
#include "bsp_usart.h"

/**************************** ÈÎÎñ¾ä±ú ********************************/
/* 
 * ÈÎÎñ¾ä±úÊÇÒ»¸öÖ¸Õ룬ÓÃÓÚÖ¸ÏòÒ»¸öÈÎÎñ£¬µ±ÈÎÎñ´´½¨ºÃÖ®ºó£¬Ëü¾Í¾ßÓÐÁËÒ»¸öÈÎÎñ¾ä±ú
 * ÒÔºóÎÒÃÇÒªÏë²Ù×÷Õâ¸öÈÎÎñ¶¼ÐèҪͨ¹ýÕâ¸öÈÎÎñ¾ä±ú£¬Èç¹ûÊÇ×ÔÉíµÄÈÎÎñ²Ù×÷×Ô¼º£¬ÄÇô
 * Õâ¸ö¾ä±ú¿ÉÒÔΪNULL¡£
 */
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值