ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

在 RIOT OS 中使用 WeAct-G030F6 开发板:基于 STM32G030F6P6 的入门与配置指南

在 RIOT OS 中使用 WeAct-G030F6 开发板:基于 STM32G030F6P6 的入门与配置指南 在 RIOT OS 中使用 WeAct-G030F6 开发板基于 STM32G030F6P6 的入门与配置指南【免费下载链接】RIOTRIOT - The friendly OS for IoT项目地址: https://gitcode.com/GitHub_Trending/riot/RIOT导读本文围绕 RIOT 仓库中 WeAct-G030F6 板级支持文档系统讲解这款基于 STM32G030F6P6 的超低成本开发板在 RIOT OS 中的硬件资源、外设映射与烧录调试方式。读完本文你将掌握该板卡的 LED/按键引脚定义、UART 与 Timer 的默认配置、SAUL 自动注册机制以及使用 OpenOCD ST-Link 完成编译烧录和串口监控的完整操作流程。板卡概览无需 USB 的最小 IoT 开发板WeAct-G030F6 是 WeAct Studio 出品的一款极简主义开发板核心为 ST 的 STM32G030F6P6 单片机。它在 boards/weact-g030f6/doc.md 中被定义为基于STM32G030F6P6的廉价小尺寸板卡不板载编程器也没有 USB 连接必须外接 ST-Link、DAP-Link 等调试器进行烧录零售渠道如 AliExpress售价通常不到 2 欧元是入门 STM32G0 系列和 RIOT 开发的极低成本选择。无 USB、需外部调试器这一设计意味着它的所有调试下载、串口通信都依赖外接硬件因此在 RIOT 中默认的烧录与串口配置都围绕 OpenOCD ST-Link 展开详见下文构建与烧录一节。硬件规格STM32G030F6P6 资源一览原文档以表格形式给出了 MCU 的关键参数这是评估该板能跑哪些 RIOT 应用的首要依据完整整理如下项目规格MCUSTM32G030F6P6内核家族ARM Cortex-M0厂商ST MicroelectronicsRAM8 KiBFlash32 KiB最高频率64 MHzFPU无Cortex-M0 不含硬件浮点单元定时器8 个2×看门狗、1×SysTick、5×16-bitADC1×12-bitUART2SPI2I2C2RTC1供电电压2.0V – 3.6V数据手册STM32G030F6 数据手册外部链接来自原文档参考手册RM0454 参考手册外部链接来自原文档从规格看 RIOT 适配的约束Flash/RAM 很小32 KiB/8 KiB适用于最小化的线程、GPIO、UART 演示以及超低功耗传感节点类应用无 FPU涉及浮点运算时应使用定点算法或printf之外的轻量输出方案尽管如此RIOT 仍为该板提供了periph_gpio、periph_timer、periph_uart、periph_rtc四类外设驱动足以支撑典型的小型嵌入式应用。RIOT 板级支持从 Makefile 看板卡能力WeAct-G030F6 在 RIOT 中的完整板级支持位于 boards/weact-g030f6/由以下文件组成boards/weact-g030f6/ ├── Makefile # 板级模块声明 ├── Makefile.dep # 依赖声明saul_default → saul_gpio ├── Makefile.features # CPU/CPU_MODEL 与提供的外设特性 ├── Makefile.include # 编译包含路径、烧录器与串口配置 ├── doc.md # 板卡文档本文主体 └── include/ ├── board.h # LED / 按键引脚定义 ├── gpio_params.h # SAUL GPIO 参数表 └── periph_conf.h # Timer / UART 外设配置Makefile.features板卡提供的 RIOT 外设特性boards/weact-g030f6/Makefile.features 明确了该板的 CPU 归属与对外提供的能力CPU stm32 CPU_MODEL stm32g030f6 # Put defined MCU peripherals here (in alphabetical order) FEATURES_PROVIDED periph_gpio FEATURES_PROVIDED periph_timer FEATURES_PROVIDED periph_uart FEATURES_PROVIDED periph_rtc其中CPU_MODEL stm32g030f6与 cpu/stm32/kconfigs/g0/Kconfig.models 中定义的CPU_MODEL_STM32G030F6selectCPU_LINE_STM32G030XX一一对应属于 STM32G030xx 产品线。RIOT 的依赖系统通过FEATURES_PROVIDED判断应用请求的periph_*模块能否在该板上满足——例如应用声明FEATURES_REQUIRED periph_rtc时本板即可直接满足。Makefile.depSAUL 自动注册boards/weact-g030f6/Makefile.dep 内容很短但很关键ifneq (,$(filter saul_default,$(USEMODULE))) USEMODULE saul_gpio endif即只要应用启用了saul_default模块板卡就会自动追加saul_gpio把板载 LED 与按键注册进 SAULSensors Actuators Unified Layer设备体系方便通过统一的 SAUL 接口如saulshell 命令直接读写。Makefile.include烧录器与串口终端默认值boards/weact-g030f6/Makefile.include 复用了 STM32 板的公共配置片段并预置了调试/串口参数# we use shared STM32 configuration snippets INCLUDES -I$(RIOTBASE)/boards/common/stm32/include # setup programmer PROGRAMMERS_SUPPORTED openocd PROGRAMMER ? openocd OPENOCD_DEBUG_ADAPTER ? stlink include $(RIOTMAKE)/tools/openocd.inc.mk # setup serial terminal PORT_LINUX ? /dev/ttyACM0 PORT_DARWIN ? $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*))) include $(RIOTMAKE)/tools/serial.inc.mk要点解读烧录器默认为OpenOCD调试适配器默认为ST-LinkPROGRAMMER ? openocd、OPENOCD_DEBUG_ADAPTER ? stlink与板卡无板载调试器的定位完全吻合Linux 下默认串口设备为/dev/ttyACM0macOS 下则自动探测tty.SLAB_USBtoUART*Silicon Labs CP210x 等 USB 转串口芯片的常见设备名可通过PROGRAMMER、OPENOCD_DEBUG_ADAPTER、PORT等变量在编译命令行覆盖默认值。板载外设映射LED 与按键boards/weact-g030f6/include/board.h 定义了板载 LED 与按键#define LED0_PIN_NUM 4 #define LED0_PORT GPIO_PORT_A /** GPIO port of LED 0 */ #define LED0_PORT_NUM PORT_A #define BTN0_PIN GPIO_PIN(PORT_A, 14) #define BTN0_MODE GPIO_INLED0PA4输出引脚板载蓝色 LEDRIOT 约定通过LED0_PIN、LED0_ON/LED0_OFF/LED0_TOGGLE等宏操作BTN0PA14输入引脚默认模式GPIO_IN内部上下拉未启用用于轮询或外部中断读取按键状态。board.h通过#include stm32_leds.h引入 STM32 通用 LED 操作宏因此应用代码只需包含board.h即可使用统一的 LED/按键接口。外设默认配置UART 与 Timer 的引脚布局boards/weact-g030f6/include/periph_conf.h 给出了 RIOT 为该板预置的外设引脚映射编译应用前应先确认这些引脚与你的外接硬件是否匹配。UART默认调试串口为 USART2static const uart_conf_t uart_config[] { { .dev USART2, .rcc_mask RCC_APBENR1_USART2EN, .rx_pin GPIO_PIN(PORT_A, 3), .tx_pin GPIO_PIN(PORT_A, 2), .rx_af GPIO_AF1, .tx_af GPIO_AF1, .bus APB1, .irqn USART2_IRQn, }, };默认调试串口为USART2引脚为PA2TX/ PA3RX复用功能GPIO_AF1中断号为USART2_IRQnRIOT 将其中断服务函数映射为UART_0_ISR即isr_usart2与 Makefile.include 中的/dev/ttyACM0配合烧录后将 USB 转串口模块的 TX/RX 接到 PA2/PA3注意交叉即可通过make term查看 RIOT shell 输出UART_NUMOF由ARRAY_SIZE(uart_config)自动推导当前为 1。Timer16-bit 定时器 TIM1static const timer_conf_t timer_config[] { { .dev TIM1, .max 0x0000ffff, .rcc_mask RCC_APBENR2_TIM1EN, .bus APB12, .irqn TIM1_CC_IRQn } }; #define TIMER_0_ISR isr_tim1_cc #define TIMER_0_MAX_VALUE 0xffff #define TIMER_NUMOF ARRAY_SIZE(timer_config)RIOT 的ztimer/timer驱动基于TIM1为 16 位定时器最大计数值0xffff使用捕获/比较中断TIM1_CC_IRQn时钟总线为APB12由RCC_APBENR2_TIM1EN使能时钟。SAUL 设备注册LED 与按键的统一访问boards/weact-g030f6/include/gpio_params.h 将板载外设注册进 SAULstatic const saul_gpio_params_t saul_gpio_params[] { { .name LED(blue), .pin LED0_PIN, .mode GPIO_OUT, .flags SAUL_GPIO_INVERTED | SAUL_GPIO_INIT_CLEAR, }, { .name Button(A14), .pin BTN0_PIN, .mode BTN0_MODE, }, };LED(blue)PA4输出模式带SAUL_GPIO_INVERTEDLED 低电平点亮和SAUL_GPIO_INIT_CLEAR初始化时熄灭因反向所以置低两个标志Button(A14)PA14输入模式启用saul_default后可在 RIOT shell 中执行saul命令列出这两个设备用saul set/saul get驱动 LED 或读取按键无需编写任何 GPIO 代码。构建、烧录与串口监控实战综合以上配置在 RIOT 中为 WeAct-G030F6 编译运行应用的流程如下1. 编译以任意 example如examples/basic/hello-world为例指定板名即可make BOARDweact-g030f6 -C examples/basic/hello-world构建系统会根据Makefile.features选择stm32CPU 与stm32g030f6型号并按Makefile.dep自动拉取saul_gpio等依赖。2. 烧录需外接调试器由于板卡没有板载编程器请将 ST-Link 的 SWDIO/SWCLK/GND/3V3 与板卡对应引脚相连然后执行make BOARDweact-g030f6 -C examples/basic/hello-world flash默认命令等价于make BOARDweact-g030f6 PROGRAMMERopenocd OPENOCD_DEBUG_ADAPTERstlink flash如需使用其他调试器如 DAP-Link可覆盖OPENOCD_DEBUG_ADAPTER变量。3. 串口监控将 USB 转串口模块连接到 USART2PA2TX、PA3RX交叉接线Linux 下通常自动识别为/dev/ttyACM0make BOARDweact-g030f6 -C examples/basic/hello-world termmacOS 下若使用 CP210x 转串口芯片系统会按Makefile.include中的规则自动匹配tty.SLAB_USBtoUART*设备。4. 板载外设快速验证烧录一个带 shell 的示例后在串口终端中执行saul # 列出 SAUL 设备应看到 LED(blue) 与 Button(A14) saul set 0 1 # 点亮蓝色 LED受 SAUL_GPIO_INVERTED 影响小结WeAct-G030F6 凭借不到 2 欧元的成本和 STM32G030F6P6 的完整外设是体验 RIOT OS 极低成本入门的理想选择。RIOT 为其提供了完整的板级支持PA4/PA14 的 LED 与按键映射、USART2PA2/PA3默认调试串口、TIM1 定时器以及 SAUL 自动注册机制。需要特别留意的是该板没有板载 USB 与调试器所有下载调试必须通过外部 ST-Link/DAP-Link 完成这既是它的定位也是使用它的前提条件。进一步阅读板卡源码位于 boards/weact-g030f6/MCU 产品线 Kconfig 定义见 cpu/stm32/kconfigs/g0/Kconfig.models。【免费下载链接】RIOTRIOT - The friendly OS for IoT项目地址: https://gitcode.com/GitHub_Trending/riot/RIOT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表