适用于 STM32F103C8 的 FreeRTOS,STM32的多任务同时进行

概述:适用于 STM32F103C8  FreeRTOS

STM32F103C 是一款ARM Cortex M3 处理器。我们可以在 Arduino IDE 中使用适用于 STM32F103C8 的 FreeRTOS。我们也可以使用 Keil,但这个过程相对冗长:我们需要将下载的文件下载并粘贴到 Keil 路径中,这里我们使用 Arduino IDE 的方式。

要了解 FreeRTOS 文档和方法定义,您可以查看FreeRTOS STM32F103C8。

什么是 FreeRTOS

FreeRTOS 可能是一种免费的开源实时操作系统 (RTOS),可在包括 STM32 在内的许多流行微控制器上运行。

操作系统可以是在计算系统期间管理其他软件和硬件资源的软件。通用操作系统通常在设计时关注用户体验。

例如,假设我们正在为手机操作系统开发一个应用程序。用户可能想要流式传输电影,因此我们可以将流式传输体验分为两个工作:工作1 从 Web 下载视频;工作2将每个视频块显示给用户。这些工作可能是等效工作的一部分程序,也就是同时进行的。在这种情况下,它们可以实现为并发运行的线程。

如果我们的处理器只有 1 个核心,我们的流应用程序可能需要在作业 1 和作业 2 之间快速跳转,以同时向用户提供下载和查看。

了解 Arduino IDE 中的 STM32F103C8 如何捆绑 FreeRTOS 非常重要。虽然 FreeRTOS 是一个允许切换任务、调度等的底层软件框架,但我们不会直接调用 FreeRTOS。ARM 已经创建了 CMSIS-RTOS 库,它允许我们形成对底层 RTOS 的调用,从而提高了各种 ARM 处理器之间代码的可移植性。

如何在 Arduino IDE 下载安装 STM32F103C8 可使用的FreeRTOS

1步:

在 Arduino IDE 中,首先转到 文件-> 首选项。复制下面的链接并按照下图粘贴到附加板管理器中。

2步:

现在我们需要下载 FreeRTOS 库文件。如需下载,请转到项目->加载库,然后单击管理库。

 3 步:

现在,在搜索栏中输入 FreeRTOS,它会显示一些库文件,向下滚动并找到Richard Barry 的 STM32duino FreeRTOS。然后选择该库并单击安装。安装需要一些时间。安装后显示为INSTALLED。

4步:

现在我们可以在 Arduino 使用 STM32F103C8 的 freeRTOS 库了。我们为板载 LED 和另一个单独的 LED 编写一个简单的闪烁程序。

准备配件

本教程需要以下硬件。

1. STM32F103C板

2. FTDI

3. LED

4. 跳线

5. 面包板

在这里,我将一个LED 连接到 PB11。

如何使用 FreeRTOS  STM32F103C8 上运行两个不同的任务?

使用两个 LED,并为这两个LED创建两个任务。一个 LED 每秒闪烁 1 次,另一个 LED 每200ms 闪烁一次。现在,让我们开始使用 FreeRTOS 编写这两个 LED 闪烁的代码。

下面是部分代码:

static void task1(void * pvParameters) {

  for (; ; ) {

    vTaskDelay(1000);

    digitalWrite(BOARD_LED_PIN, HIGH);

    vTaskDelay(1000);

    digitalWrite(BOARD_LED_PIN, LOW);

  }

}

static void task2(void * pvParameters) {

   for (; ; ) {

    vTaskDelay(200);

    digitalWrite(LED_PIN, HIGH);

    vTaskDelay(200);

    digitalWrite(LED_PIN, LOW);

  }

}

上传代码后,即可看到结果。

猜你喜欢

转载自blog.csdn.net/m0_67034740/article/details/124223212