操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载导读本文围绕bsp/stm32/stm32f407-lckfb-skystar立创梁山派·天空星开发板主控 STM32F407VET6的 Arduino 生态兼容层RTduino展开完整介绍如何开启 RTduino、如何理解该 BSP 的 Arduino 引脚映射表并结合pins_arduino.c/pins_arduino.h源码深入解析引脚别名、设备框架接管关系与默认外设总线。读完本文你将掌握在 RT-Thread 上以 Arduino 编程习惯驱动这颗 STM32F407 开发板的方法并能准确按引脚编号接线、调用Serial、Wire、SPI、PWM、ADC、DAC等 Arduino 标准 API。1 RTduinoRT-Thread 的 Arduino 生态兼容层立创天空星 BSP 已经完整适配 RTduino——RT-Thread 官方提供的 Arduino 生态兼容层。启用后开发者可以完全按照 Arduino 的setup()/loop()编程范式操作该 BSP同时可以复用 Arduino 社区中海量的第三方库传感器、显示、通信类库等这是对 RT-Thread 生态的重要补充。关于该 BSP 的工程快速上手pkgs --update拉取依赖、MDK5 编译下载、串口 115200-8-1-N 观察启动信息等可参考 bsp/stm32/stm32f407-lckfb-skystar/README.md。本文聚焦其中的 Arduino 兼容部分。1.1 如何开启本 BSP 的 Arduino 生态兼容层开启方式有两种效果等价Env 命令行工具在 BSP 目录下执行menuconfigRT-Thread Studio IDE在工程中打开 RT-Thread Settings 图形化配置界面。随后按如下 Kconfig 路径勾选Hardware Drivers Config --- Onboard Peripheral Drivers --- [*] Compatible with Arduino Ecosystem (RTduino)勾选保存后还需在 Env 中执行pkgs --update拉取 RTduino 软件包并重新生成工程如scons --targetmdk5使配置生效。源码佐证编译脚本严格以软件包开关为依赖条件——applications/arduino_pinout/SConscript 中pins_arduino.c所在的RTduino编译组以depend [PKG_USING_RTDUINO]为条件applications/SConscript 中arduino_main.cpp仅在PKG_USING_RTDUINO已开启且未定义RTDUINO_NO_SETUP_LOOP时才加入编译。1.2 启用后的默认 Arduino 示例启用 RTduino 后applications/arduino_main.cpp 提供了一个开箱即用的示例#include Arduino.h void setup(void) { /* put your setup code here, to run once: */ Serial.begin(); } void loop(void) { /* put your main code here, to run repeatedly: */ Serial.println(Hello Arduino!); delay(800); }从这里可以直观看到 Arduino 生态兼容层的核心价值setup()/loop()结构、Serial、delay()等标准 Arduino API 直接可用。其中Serial默认由 uart1PA9-TX / PA10-RX承载对应下表 D0/D1 引脚。2 Arduino 引脚排布Pin Map完整引脚映射如下表所示。其中 Arduino 引脚编号 是 Arduino 层暴露的编号GET_PIN(port, pin)是 RT-Thread 的引脚编号宏备注 列标注了该引脚默认被哪个 RT-Thread 设备框架接管例如 uart1、pwm2、swspi1、i2c4、adc3、dac1 等这意味着这些引脚上的对应功能默认已由 RT-Thread 设备驱动管理。Arduino引脚编号STM32引脚编号5V容忍备注0 (D0)GET_PIN(A, 10)是Serial-RX默认被 RT-Thread 的 UART 设备框架 uart1 接管1 (D1)GET_PIN(A, 9)是Serial-TX默认被 RT-Thread 的 UART 设备框架 uart1 接管2 (D2)GET_PIN(A, 8)是3 (D3)GET_PIN(B, 10)是PWM2-CH3默认被 RT-Thread 的 PWM 设备框架 pwm2 接管4 (D4)GET_PIN(A, 1)是5 (D5)GET_PIN(B, 14)是6 (D6)GET_PIN(B, 11)是PWM2-CH4默认被 RT-Thread 的 PWM 设备框架 pwm2 接管7 (D7)GET_PIN(B, 15)是8 (D8)GET_PIN(F, 15)是9 (D9)GET_PIN(E, 11)是PWM1-CH2默认被 RT-Thread 的 PWM 设备框架 pwm1 接管10 (D10)GET_PIN(E, 13)是PWM1-CH3默认被 RT-Thread 的 PWM 设备框架 pwm1 接管11 (D11)GET_PIN(D, 12)是PWM4-CH1默认被 RT-Thread 的 PWM 设备框架 pwm4 接管12 (D12)GET_PIN(D, 10)是13 (D13)GET_PIN(D, 8)是14 (D14)GET_PIN(E, 14)是15 (D15)GET_PIN(E, 12)是16 (D16)GET_PIN(E, 15)是17 (D17)GET_PIN(D, 9)是18 (D18)GET_PIN(G, 2)是19 (D19)GET_PIN(B, 2)是20 (D20)GET_PIN(G, 0)是21 (D21)GET_PIN(A, 0)是22 (D22)GET_PIN(G, 5)是SWSPI1-SCK默认被 RT-Thread 的 SPI 设备框架 swspi1 接管23 (D23)GET_PIN(G, 3)是SWSPI1-MISO默认被 RT-Thread 的 SPI 设备框架 swspi1 接管24 (D24)GET_PIN(G, 1)是SWSPI1-MOSI默认被 RT-Thread 的 SPI 设备框架 swspi1 接管25 (D25)GET_PIN(G, 7)是I2C-SCL默认被 RT-Thread 的 I2C 设备框架接管源码登记设备名为 i2c4见下文说明26 (D26)GET_PIN(D, 7)是I2C-SDA默认被 RT-Thread 的 I2C 设备框架接管源码登记设备名为 i2c427 (D27)GET_PIN(B, 6)是I2C-SCL默认被 RT-Thread 的 I2C 设备框架接管源码登记设备名为 i2c528 (D28)GET_PIN(B, 7)是I2C-SDA默认被 RT-Thread 的 I2C 设备框架接管源码登记设备名为 i2c529 (D29)GET_PIN(G, 6)是30 (D30)GET_PIN(G, 4)是31 (D31)GET_PIN(A, 2)是Serial2-TX默认被 RT-Thread 的 UART 设备框架 uart2 接管32 (D32)GET_PIN(A, 3)是Serial2-RX默认被 RT-Thread 的 UART 设备框架 uart2 接管33 (D33)GET_PIN(F, 12)是板载用户 R_LED34 (D34)GET_PIN(F, 11)是板载用户 B_LED35 (D35)GET_PIN(B, 0)是板载蜂鸣器36 (D36)GET_PIN(C, 5)是板载按键 KEY_UP37 (D37)GET_PIN(C, 1)是板载按键 KEY_DOWM38 (D38)GET_PIN(C, 0)是板载按键 KEY_LEFT39 (D39)GET_PIN(C, 4)是板载按键 KEY_RIGHT40 (A0)GET_PIN(F, 6)是ADC3-CH4默认被 RT-Thread 的 ADC 设备框架 adc3 接管41 (A1)GET_PIN(F, 7)是ADC3-CH5默认被 RT-Thread 的 ADC 设备框架 adc3 接管42 (A2)GET_PIN(F, 4)是ADC3-CH14默认被 RT-Thread 的 ADC 设备框架 adc3 接管43 (A3)GET_PIN(F, 5)是ADC3-CH15默认被 RT-Thread 的 ADC 设备框架 adc3 接管44 (DAC0)GET_PIN(A, 4)否DAC1-CH1默认被 RT-Thread 的 DAC 设备框架 dac1 接管上图完整标注了板级 Arduino 引脚编号与 STM32 引脚的对应关系实际接线前建议结合丝印与上图核对。更详细的引脚布局信息可查阅 pins_arduino.c 与 pins_arduino.h。3 源码级解析引脚表与关键宏3.1 pin_map_tableArduino 引脚与 RT-Thread 设备的桥接表pins_arduino.c 中的pin_map_table[]是 RTduino 与 RT-Thread 设备框架之间的核心桥接数据结构其注释明确定义了行内各字段的含义/* * {Arduino Pin, RT-Thread Pin [, Device Name, Channel]} * [] means optional * Digital pins must NOT give the device name and channel. * Analog pins MUST give the device name and channel(ADC, PWM or DAC). * Arduino Pin must keep in sequence. */ const pin_map_t pin_map_table[] { { D0, GET_PIN(A, 10), uart1 }, /* Serial-RX */ { D1, GET_PIN(A, 9), uart1 }, /* Serial-TX */ { D3, GET_PIN(B, 10), pwm2, 3 }, /* PWM */ { D6, GET_PIN(B, 11), pwm2, 4 }, /* PWM */ { D9, GET_PIN(E, 11), pwm1, 2 }, /* PWM */ { D22, GET_PIN(G, 5), swspi1 }, /* SOFT-SPI-SCK */ { D25, GET_PIN(G, 7), i2c4 }, /* I2C-SCL (Wire) */ { D31, GET_PIN(A, 2), uart2 }, /* Serial2-TX */ { A0, GET_PIN(F, 6), adc3, 4 }, /* ADC */ { DAC0, GET_PIN(A, 4), dac1, 1 }, /* DAC */ };从源码结构可以推断出以下约定纯数字引脚只给{Arduino Pin, RT-Thread Pin}两项不附带设备名与通道模拟类引脚ADC、PWM、DAC必须同时给出设备名与通道号例如A0对应adc3的第 4 通道ADC3-CH4数组顺序与 Arduino 引脚编号严格递增RTduino 运行时按序号建立索引因此 must keep in sequence 是后续扩展引脚映射时必须遵守的约束。3.2 关键宏定义pins_arduino.h 定义了该 BSP 的 Arduino 生态关键常量宏值含义D0~D390 ~ 39数字引脚编号别名A0~A340 ~ 43模拟输入引脚编号别名DAC044DAC 引脚编号别名RTDUINO_PIN_MAX_LIMITDAC044引脚编号上限校验值F_CPU168000000LCPU 主频 168 MHzLED_BUILTIND33板载默认 LEDR_LEDRTDUINO_DEFAULT_IIC_BUS_NAMEi2c4Wire默认 I2C 总线PD7-SDA / PG7-SCLRTDUINO_DEFAULT_SPI_BUS_NAMEswspi1默认 SPI 总线软件 SPIPG5-SCK / PG3-MISO / PG1-MOSIRTDUINO_SERIAL2_DEVICE_NAMEuart2Serial2 对应的设备名PA2-TX / PA3-RXSSD32默认 SPI 的片选引脚编号这些宏直接决定了 Arduino 层标准对象的底层设备绑定WireI2C默认挂接i2c4总线SPI默认挂接swspi1软件 SPI 总线Serial2默认挂接uart2LED_BUILTIN即板载 R_LEDD33 / PF12可直接用digitalWrite(LED_BUILTIN, HIGH/LOW)控制。4 引脚复用与外设接管注意事项被设备框架接管的引脚D0/D1uart1、D3/D6/D9/D10/D11pwm1/pwm2/pwm4、D22~D24swspi1、D25~D28I2C、D31/D32uart2、A0~A3adc3、DAC0dac1均默认被对应 RT-Thread 设备驱动管理。若要在 Arduino 层将其当作普通 GPIO 使用需要先在 RT-Thread 侧关闭对应外设或调整设备接管关系。README 表格与源码的 I2C 设备名差异BSP 的 arduino_pinout README 表格中 D25~D28 备注为 I2C1 / I2C2而 pins_arduino.c 中登记的设备名为i2c4与i2c5pins_arduino.h 的RTDUINO_DEFAULT_IIC_BUS_NAME也指向i2c4。在实际开发中应以源码登记的设备名为准Wire默认即挂接i2c4PG7-SCL / PD7-SDA。5V 容忍除 DAC0PA4标注为 否外映射表中的绝大多数引脚均支持 5V 电平容忍可直接与 5V 逻辑器件交互DAC0 属于模拟输出通道对外接电平要求需按数据手册评估。板载资源编号D33/D34 为板载红/蓝 LEDD35 为蜂鸣器D36~D39 为四向按键KEY_UP / KEY_DOWM / KEY_LEFT / KEY_RIGHT这些编号让 Arduino 程序可以直接访问板载外设而无需再查原理图。5 小结与扩展阅读RTduino 生态兼容层使立创天空星 STM32F407 开发板具备了 Arduino 写法 RT-Thread 内核 的混合开发能力既能享受 RT-Thread 的实时调度、设备框架与软件包生态又能复用 Arduino 社区的海量库与setup/loop编程模型。本文所述引脚编号、设备接管关系与宏定义均可在如下路径中直接查阅与验证引脚映射表源码pins_arduino.c引脚别名与默认设备宏pins_arduino.h默认示例程序arduino_main.cpp编译依赖规则arduino_pinout/SConscriptBSP 整体说明与快速上手bsp/stm32/stm32f407-lckfb-skystar/README.md赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐RT-Thread ES32F369x BSP 的 Arduino 生态兼容指南RTduino 适配、引脚排布与功能测试RT Thread ES32F369x BSP 的 Arduino 生态兼容指南RTduino 适配、引脚排布与功能测试 本文基于 RT Thread 仓库中操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 下的 STM32F411 Nucleo Arduino 生态兼容RTduino 引脚排布与通信接口全解析RT Thread 下的 STM32F411 Nucleo Arduino 生态兼容RTduino 引脚排布与通信接口全解析 STM32F411 Nucleo操作系统嵌入式物联网嵌入式OSRTOSSTM32F401 Nucleo 的 Arduino 生态兼容实战RT-Thread RTduino 引脚排布与编程指南STM32F401 Nucleo 的 Arduino 生态兼容实战RT Thread RTduino 引脚排布与编程指南 RT Thread 官方 BSP s操作系统嵌入式物联网嵌入式OSRTOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
ESP32与INMP441麦克风实战:从声音采集到智能语音处理 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:42:13
《计算机工程》投稿全攻略:从选刊到审稿意见应对的避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:42:13
Imatest动态范围测试全解析:从SNR原理到灰阶卡实操与避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:42:13
网站查询功能技术支持中企动力最佳实践全解 网站查询功能技术支持中企动力最佳实践全解 网站做好了没人访问,这种挫败感谁懂?很多老板花几万块找外包,结果上线三个月,后台日志里全是爬虫,真实用户寥寥无几。这时候你去找服务商问“怎么优化”,对方往往支支吾吾,只给一堆模糊的“SEO建议”。其… · 2026/9/27 2:25:59
千笔AI解答:关于论文AIGC率和AI降重的常见困惑 论文aigc率多少算正常
目前不同高校、期刊对论文AIGC率的合格标准没有统一的规定,主流的要求区间通常控制在10%-30%以内。千笔AI平台结合大量高校送检案例整理了常见的标准参考如下:
场景合理AIGC率区间说明本科毕业论文≤20%部分宽松院校可放宽至30%硕士… · 2026/9/27 2:25:53
K-means、层次聚类与DBSCAN在鸢尾花数据集上的实战对比 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:25:53
查重合格但AI率超标,有哪些免费工具能帮助降低论文AI率? 查重合格但AI率超标,有哪些免费工具能帮助降低论文AI率?
重复率已经符合学校要求,AIGC检测却没通过。最担心的是重新改全文后,AI率没有明显下降,原本合格的重复率还升上去了。这时应保留查重合格的底稿,针… · 2026/9/27 2:25:29
YOLO11n架构深度解析:从yaml配置到C3K2、C2PSA的核心组件拆解 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:25:29
VISIO电子元件库安装使用指南:从下载到高效绘制电路图 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 2:25:29
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01