作为嵌入式开发者,在云栈社区常能看到大家分享的优质开源项目。下面整理了一批与 STM32 相关的资源,覆盖官方工具链、RTOS 与驱动库,适合入门上手和进阶参考。
STM32Cube 官方生态
ST 官方推出的 STM32Cube 系列是开发的基石。
核心组件:
使用示例:
# 通过 STM32CubeMX 生成工程后
cd STM32Project
make -j4
openocd -f board/stm32f4discovery.cfg
RTOS 相关项目
RTOS 是嵌入式开发的核心环节,推荐两个适合学习的项目。
FreeRTOS 学习资源:
示例代码:
// 典型的 FreeRTOS 任务创建示例
void vTask1(void *pvParameters) {
while(1) {
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
vTaskDelay(pdMS_TO_TICKS(500));
}
}
void main(void) {
xTaskCreate(vTask1, "LED", 128, NULL, 1, NULL);
vTaskStartScheduler();
}
驱动与外设库
开源驱动库推荐:
| 项目 |
特点 |
支持芯片 |
资源链接 |
| libopencm3 |
轻量级开源外设库,代码简洁 |
全系列 STM32 |
libopencm3 |
| STM32duino |
Arduino 兼容层,快速原型开发 |
F1/F4/F7/H7 系列 |
STM32duino |
libopencm3 使用示例:
#include <libopencm3/stm32/rcc.h>
#include <libopencm3/stm32/gpio.h>
void gpio_setup(void) {
rcc_periph_clock_enable(RCC_GPIOA);
gpio_mode_setup(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO5);
}
|