在 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),仅供参考

相关新闻

MySQL窗口函数高频面试:分组TopN、排名、帧与执行计划优化

MySQL窗口函数高频面试:分组TopN、排名、帧与执行计划优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 9:08:55 阅读更多 →
Altium Designer二次开发:C#为主、C++为核、Delphi为 legacy 的工程实践指南

Altium Designer二次开发:C#为主、C++为核、Delphi为 legacy 的工程实践指南

1. 什么是Altium Designer二次开发:不是写插件那么简单,而是重构你的设计工作流Altium Designer二次开发,这个词在PCB工程师圈子里常被误读成“给AD装个插件”或者“写个按钮点一下自动布线”。但真正干过三年以上量产项目的人会告诉你&#…

2026/9/18 9:07:54 阅读更多 →
用pdfplumber+SQLite构建生产运作管理习题答案知识库

用pdfplumber+SQLite构建生产运作管理习题答案知识库

简介:这份生产运作管理教材习题答案面向高校经管类、工业工程及相关专业学生,适合备考期末、考研复试或自学巩固。资源以1个PDF文件呈现,压缩包大小为1.76MB,体积虽小但覆盖完整。答案按教学章节组织,涵盖思考题、单项…

2026/9/18 9:07:54 阅读更多 →

最新新闻

锂离子动力电池技术PPT:从电芯参数到BMS算法的完整呈现指南

锂离子动力电池技术PPT:从电芯参数到BMS算法的完整呈现指南

简介:这份「锂离子动力电池」PPT讲义从动力电池的基本概念与分类切入,系统讲解锂离子电池在电动车辆动力系统中的应用技术,适合新能源汽车专业学生、电池研发人员及车辆动力系统设计工程师学习参考。内容覆盖锂离子电池工作原理、正极材料&am…

2026/9/19 13:11:54 阅读更多 →
承包经营合同递增包干条款解读与Python自动化填充实践

承包经营合同递增包干条款解读与Python自动化填充实践

简介:企业承包经营合同是企业所有权与经营权分离场景下的常用法律文件。这份范本可直接填写使用,适合企业所有者、经营管理者及法务人员用来起草或审核承包协议。合同围绕“上交利润递增包干”形式展开,完整覆盖承包期限、上交利润基数与递增…

2026/9/19 13:11:54 阅读更多 →
librealsense 开发上手:RealSense D435i 深度数据从取流到调优

librealsense 开发上手:RealSense D435i 深度数据从取流到调优

librealsense 开发上手:RealSense D435i 深度数据从取流到调优 【免费下载链接】librealsense RealSense SDK 项目地址: https://gitcode.com/GitHub_Trending/li/librealsense librealsense 是 RealSense 系列深度相机的开源跨平台 SDK,覆盖深度…

2026/9/19 13:11:54 阅读更多 →
fairseq 中的 Megatron-11b:基于 Megatron-LM 的 110 亿参数语言模型并行训练与 Wikitext-103 评估实战

fairseq 中的 Megatron-11b:基于 Megatron-LM 的 110 亿参数语言模型并行训练与 Wikitext-103 评估实战

fairseq 中的 Megatron-11b:基于 Megatron-LM 的 110 亿参数语言模型并行训练与 Wikitext-103 评估实战 【免费下载链接】fairseq Facebook AI Research Sequence-to-Sequence Toolkit written in Python. 项目地址: https://gitcode.com/gh_mirrors/fa/fairseq …

2026/9/19 13:11:54 阅读更多 →
基于 gTTS 与 Pygame 的 text_to_audio 文字转语音:类封装、懒加载与内存优化实战

基于 gTTS 与 Pygame 的 text_to_audio 文字转语音:类封装、懒加载与内存优化实战

基于 gTTS 与 Pygame 的 text_to_audio 文字转语音&#xff1a;类封装、懒加载与内存优化实战 【免费下载链接】Python My Python Examples 项目地址: https://gitcode.com/gh_mirrors/py/Python <输出文章> 基于 gTTS 与 Pygame 的 text_to_audio 文字转语音&am…

2026/9/19 13:11:54 阅读更多 →
Typora Markdown编辑器下载安装与使用全指南

Typora Markdown编辑器下载安装与使用全指南

Markdown 文件这玩意儿&#xff0c;说简单也简单&#xff0c;一个纯文本文件改个后缀就能用&#xff1b;说讲究也真讲究&#xff0c;尤其是当你需要写技术文档、整理笔记、维护博客草稿的时候&#xff0c;一个趁手的编辑器能直接把效率拉高一个档次。Typora 就是在这个需求缝隙…

2026/9/19 13:10:54 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介&#xff1a;面向机器学习、深度学习与数据建模学习者的一份完整研究文献&#xff0c;聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本&#xff0c;系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程&#xff0c;展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型&#xff0c;在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志&#xff0c;发现loss从凌晨两点就开始往上爬&#xff0c;一路从0.8涨到1.35&#xff0c;整整六个小时没人发现。那六个小时的训练不仅白跑&#xff0c;还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast&#xff1a;从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud &#x1f324;️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

2026/9/19 0:00:30 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南&#xff1a;掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/19 3:59:36 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战&#xff1a;基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/19 3:53:08 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时&#xff0c;甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事&#xff0c;打开配置文件改一行不就完了&#xff1f;结果真动手才发现&#xff0c;Flutter项目里“应用名称”根本不是一处配置&#xff0c;而是一整套散落在 Androi…

2026/9/19 4:02:43 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →