stm32f103用什么做gui(适用于STM32F103C8的)
stm32f103用什么做gui(适用于STM32F103C8的)了解 Arduino IDE 中的 STM32F103C8 如何捆绑 FreeRTOS 非常重要。虽然 FreeRTOS 是一个允许切换任务、调度等的底层软件框架,但我们不会直接调用 FreeRTOS。ARM 已经创建了 CMSIS-RTOS 库,它允许我们形成对底层 RTOS 的调用,从而提高了各种 ARM 处理器之间代码的可移植性。如果我们的处理器只有 1 个核心,我们的流应用程序可能需要在作业 1 和作业 2 之间快速跳转,以同时向用户提供下载和查看。FreeRTOS 可能是一种免费的开源实时操作系统 (RTOS),可在包括 STM32 在内的许多流行微控制器上运行。操作系统可以是在计算系统期间管理其他软件和硬件资源的软件。通用操作系统通常在设计时关注用户体验。例如,假设我们正在为手机操作系统开发一个应用程序。用户可能想要流式传输电影,因此我们可以将流式传输体验分为两个工作:工作1
概述:适用于 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);
}
}
上传代码后,即可看到结果。