1.1K Star 5.2K Fork 2.2K

GVPRT-Thread/rt-thread

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.devcontainer
.gitee
.github
.hooks
.vscode
bsp
CME_M7
ESP32_C3
Infineon
Vango
acm32
airm2m
allwinner
allwinner_tina
amebaz
apm32
apollo2
asm9260t
at32
at91
avr32
beaglebone
bf533
bluetrum
bm3803
bouffalo_lab
ck802
core-v-mcu
cvitek
dm365
efm32
essemi
fm33lc026
frdm-k64f
ft2004
ft32
fujitsu/mb9x
gd32
hc32
hc32l136
hc32l196
hifive1
hk32
hpmicro
ht32
juicevm
k210
k230
lm3s8962
lm3s9b9x
lm4f232
loongson
m16c62p
maxim
microblaze
microchip
mini2440
mini4020
mipssim
mm32
mm32f103x
mm32f327x
mm32f526x
mm32l07x
mm32l3xx
msp432e401y-LaunchPad
n32
n32g452xx
nios_ii
nrf5x
nuclei
nuvoton
nv32f100x
nxp
phytium
pic32ethernet
qemu-vexpress-a9
qemu-virt64-aarch64
qemu-virt64-riscv
raspberry-pi
raspberry-pico
renesas
rm48x50
rockchip
rv32m1_vega
rx
sam7x
samd21
sep6200
simulator
smartfusion2
sparkfun-redv
stm32
docs
libraries
stm32f072-st-nucleo
stm32f091-st-nucleo
stm32f103-100ask-mini
stm32f103-100ask-pro
stm32f103-atk-nano
stm32f103-atk-warshipv3
stm32f103-blue-pill
stm32f103-dofly-M3S
stm32f103-dofly-lyc8
stm32f103-fire-arbitrary
stm32f103-gizwits-gokitv21
stm32f103-hw100k-ibox
stm32f103-keysking-learning
stm32f103-onenet-nbiot
stm32f103-yf-ufun
stm32f103-ys-f1pro
stm32f107-uc-eval
stm32f207-st-nucleo
stm32f302-st-nucleo
stm32f334-st-nucleo
stm32f401-st-nucleo
stm32f401-weact-blackpill
stm32f405-smdz-breadfruit
stm32f405zg-mini-template
stm32f407-armfly-v5
stm32f407-atk-explorer
stm32f407-fk407m2-zgt6
stm32f407-lckfb-skystar
stm32f407-robomaster-c
stm32f407-rt-spark
stm32f407-st-discovery
stm32f410-st-nucleo
stm32f411-atk-nano
stm32f411-st-nucleo
stm32f411-weact-blackpill
stm32f412-st-nucleo
stm32f413-st-nucleo
stm32f427-robomaster-a
stm32f429-armfly-v6
stm32f429-atk-apollo
stm32f429-fire-challenger
stm32f429-st-disco
stm32f446-st-nucleo
stm32f469-st-disco
stm32f723-st-disco
stm32f746-st-disco
stm32f746-st-nucleo
stm32f767-atk-apollo
stm32f767-fire-challenger-v1
stm32f767-st-nucleo
stm32f769-st-disco
stm32g030-tiny-board
stm32g070-st-nucleo
stm32g071-st-nucleo
stm32g431-st-nucleo
stm32g474-st-nucleo
stm32g491-st-nucleo
stm32h503-st-nucleo
stm32h563-st-nucleo
stm32h723-st-nucleo
stm32h730-esphosted-evb
stm32h743-armfly-v7
stm32h743-atk-apollo
stm32h743-openmv-h7plus
stm32h743-st-nucleo
stm32h747-st-discovery
stm32h750-armfly-h7-tool
stm32h750-artpi
stm32h750-fk750m1-vbt6
stm32h750-weact-ministm32h7xx
stm32h7r7-artpi2
stm32h7s7-st-disco
stm32l010-st-nucleo
stm32l053-st-nucleo
stm32l412-st-nucleo
stm32l431-BearPi
stm32l431-tencentos-tiny-EVB_MX+
stm32l432-st-nucleo
stm32l433-ali-startkit
stm32l433-st-nucleo
stm32l452-st-nucleo
stm32l475-atk-pandora
.ci/attachconfig
.settings
applications
arduino_pinout
README.md
SConscript
pins_arduino.c
pins_arduino.h
lvgl
SConscript
arduino_main.cpp
main.c
nrf24l01_init.c
board
figures
.config
.cproject
.gitignore
.project
Kconfig
README.md
SConscript
SConstruct
makefile.targets
project.ewd
project.ewp
project.eww
project.uvoptx
project.uvprojx
rtconfig.h
rtconfig.py
template.ewp
template.eww
template.uvoptx
template.uvprojx
stm32l475-st-discovery
stm32l476-st-nucleo
stm32l496-ali-developer
stm32l496-st-discovery
stm32l496-st-nucleo
stm32l4r5-st-nucleo
stm32l4r9-st-eval
stm32l4r9-st-sensortile-box
stm32l552-st-nucleo
stm32mp157a-st-discovery
stm32mp157a-st-ev1
stm32u575-st-nucleo
stm32u585-iot02a
stm32wb55-st-nucleo
stm32wl55-st-nucleo
stm32wle5-yizhilian-lm401
stm32wle5-yizhilian-lm402
tools
README.md
synopsys/boards
synwit
tae32f5300
taihu
thead-smart
ti/c28x
tkm32F499
tm4c123bsp
tm4c129x
tms320c6678
ultrarisc
upd70f3454
w60x
wch
wh44b0
x86
xplorer4330
xuantie
yichip
zynqmp-a53-dfzu2eg
zynqmp-r5-axu4ev
.clang-format
Copyright_Notice.md
README.md
components
documentation
examples
include
libcpu
src
tools
.clang-format
.gitattributes
.gitignore
ChangeLog.md
Kconfig
LICENSE
MAINTAINERS
README.md
README_de.md
README_es.md
README_zh.md
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

STM32L475潘多拉的Arduino生态兼容说明

1 RTduino - RT-Thread的Arduino生态兼容层

STM32L475潘多拉已经完整适配了RTduino软件包,即RT-Thread的Arduino生态兼容层。用户可以按照Arduino的编程习惯来操作该BSP,并且可以使用大量Arduino社区丰富的库,是对RT-Thread生态的极大增强。更多信息,请参见RTduino软件包说明文档

1.1 如何开启针对本BSP的Arduino生态兼容层

Env 工具下敲入 menuconfig 命令,或者 RT-Thread Studio IDE 下选择 RT-Thread Settings:

Hardware Drivers Config --->
    Onboard Peripheral Drivers --->
        [*] Compatible with Arduino Ecosystem (RTduino)

2 Arduino引脚排布

该BSP遵照Arduino UNO板的引脚排列方式,并扩展增加了潘多拉自身的板载资源功能引脚。详见 pins_arduino.c

2.1 Arduino引脚排布统览

更多引脚布局相关信息参见 pins_arduino.cpins_arduino.h

Arduino引脚编号 STM32引脚编号 5V容忍 备注
0 (D0) PA10 Serial-Rx,被RT-Thread的UART设备框架uart1接管
1 (D1) PA9 Serial-Tx,被RT-Thread的UART设备框架uart1接管
2 (D2) PB9 普通IO
3 (D3) PD15 PWM4-CH4,默认被RT-Thread的PWM设备框架pwm4接管
4 (D4) PA8 普通IO
5 (D5) PD14 普通IO
6 (D6) PB11 PWM2-CH4,默认被RT-Thread的PWM设备框架pwm2接管
7 (D7) PB14 普通IO
8 (D8) PB12 普通IO
9 (D9) PD12 PWM4-CH1,默认被RT-Thread的PWM设备框架pwm4接管
10 (D10) PB10 PWM2-CH3,默认被RT-Thread的PWM设备框架pwm2接管
11 (D11) PB8 PWM4-CH3,默认被RT-Thread的PWM设备框架pwm4接管
12 (D12) PB15 普通IO
13 (D13) PB13 普通IO
14 (D14) PA1 振动电机-A
15 (D15) PA0 振动电机-B
16 (D16) PB2 蜂鸣器
17 (D17) PD10 KEY0
18 (D18) PD9 KEY1
19 (D19) PD8 KEY2
20 (D20) PC13 KEY-WKUP
21 (D21) PE7 用户红色LED
22 (D22, LED_BUILTIN) PE8 用户绿色LED
23 (D23) PE9 用户蓝色LED,PWM1-CH1,默认被RT-Thread的PWM设备框架pwm1接管
24 (D24) PB0 3.6V容忍 红外发送
25 (D25) PB1 红外接收
26 (D26) PD4 无线模块 CE
27 (D27) PD3 无线模块 中断
28 (D28, SS) PD5 无线模块 片选 CS
29 (D29) PB13 SPI2-SCK,默认被RT-Thread的SPI设备框架spi2总线接管
30 (D30) PB14 SPI2-MISO,默认被RT-Thread的SPI设备框架spi2总线接管
31 (D31) PB15 SPI2-MOSI,默认被RT-Thread的SPI设备框架spi2总线接管
32 (D32) PC7 I2C1-SDA,默认被RT-Thread的I2C设备框架i2c1总线接管
33 (D33) PC6 I2C1-SCL,默认被RT-Thread的I2C设备框架i2c1总线接管
34 (D34) PA2 Serial2-Tx,默认被RT-Thread的UART设备框架uart2接管
35 (D35) PA3 Serial2-Rx,默认被RT-Thread的UART设备框架uart2接管
36 (D36) PD7 LCD 片选 CS
37 (D37) PB6 LCD 复位 RESET
38 (D38) PB4 LCD D/C 数据命令选择 即RW读写选择
39 (D39) PB7 LCD 背光电源,PWM4-CH2,默认被RT-Thread的PWM设备框架pwm4接管
A0 PC2 是(但不建议) ADC1-CH3,默认被RT-Thread的ADC设备框架adc1接管
A1 PC4 是(但不建议) ADC1-CH13,默认被RT-Thread的ADC设备框架adc1接管
A2 -- 芯片内部参考电压 ADC1-CH0,默认被RT-Thread的ADC设备框架adc1接管
A3 -- 芯片内部温度 ADC1-CH17,默认被RT-Thread的ADC设备框架adc1接管
DAC0 PA4 3.6V容忍 真模拟输出 DAC1-CH1,默认被RT-Thread的DAC设备框架dac1接管

注意:

  1. 驱动舵机和analogWrite函数要选择不同定时器发生的PWM信号引脚,由于STM32的定时器4个通道需要保持相同的频率,如果采用相同的定时器发生的PWM分别驱动舵机和analogWrite,可能会导致舵机失效。

2.2 板载排针的Arduino引脚排布

STM32引脚编号 Arduino引脚编号 备注 STM32引脚编号 Arduino引脚编号 备注
PB8 11 (D11) PWM PB9 2 (D2) 普通IO
PC7 A4 I2C1-SDA PA8 4 (D4) 普通IO
PD15 3 (D3) PWM PC6 A5 I2C1-SCL
PD13 -- -- PD14 5 (D5) 普通IO
PC2 A0 ADC PD12 9 (D9) PWM
PB14 7 (D7) 普通IO PB15 12 (D12) 普通IO
PB12 8 (D8) 普通IO PB13 13 (D13) 普通IO
PB10 10 (D10) PWM PB11 6 (D6) PWM
PC4 A1 ADC PA4 DAC0 DAC

2.3 板载外设的Arduino引脚排布

外设名称 Arduino引脚编号 STM32引脚编号
振动电机-A 14 (D14) PA1
振动电机-B 15 (D15) PA0
蜂鸣器 16 (D16) PB2
KEY0 17 (D17) PD10
KEY1 18 (D18) PD9
KEY2 19 (D19) PD8
KEY-WKUP 20 (D20) PC13
红LED 21 (D21) PE7
绿LED,Arduino默认LED 22 (D22, LED_BUILTIN) PE8
蓝LED,具有PWM功能 23 (D23) PE9
红外发射 24 (D24) PB0
红外接收 25 (D25) PB1

3 通信

3.1 I2C总线

潘多拉Arduino支持三条I2C总线,分别是:i2c1、i2c3 和 i2c4。你可以通过pins_arduino.h文件中的 RTDUINO_DEFAULT_IIC_BUS_NAME 宏来设定Arduino的I2C总线,默认为 i2c4 总线。其中:

  • i2c1 为用户总线,PC7 为 SDA,PC6 为 SCL。用户可以通过杜邦线连接其他 I2C 传感器/芯片。
  • i2c3 为板载 I2C 外设总线,连接板载 ICM20608(陀螺仪和加速度传感器) 和 AP3216C(距离和光亮度传感器) 芯片
  • i2c4 为板载 I2C 外设总线,连接板载 AHT10(温湿度传感器) 芯片

I2C的引脚都是被RT-Thread I2C设备框架接管的,不需要直接操控这两个引脚,直接引用#include <Wire.h>(Arduino官方I2C头文件)即可使用。

3.2 SPI总线

潘多拉板的Arduino SPI总线是spi2总线,位置为板上左上角的WIRELESS插槽。 SCKMISOMOSI引脚是被RT-Thread SPI设备框架接管的,不需要直接操控这3个引脚,直接引用#include <SPI.h>(Arduino官方SPI头文件)即可使用。按照Arduino的编程标准,用户需要自行控制片选信号,默认为 SS, 即 D28

3.3 串口

默认支持通过 Serial. 方法调用 uart1 串口设备;通过 Serial2. 方法调用 uart2 串口设备。详见例程

3.4 USB虚拟串口

支持USB虚拟串口,如果需要使用,可以手动使能。详见例程

RT-Thread online packages --->
    Arduino libraries --->
        [*] RTduino: Arduino Ecological Compatibility Layer
            [*] Enable USB Serial

4 特殊功能说明

4.1 芯片内部ADC通道

本BSP适配了STM32的两个芯片内部ADC通道,可以通过 analogRead 函数来分别获取如下功能:

特殊功能 Arduino引脚编号 STM32引脚编号
芯片内部参考电压 ADC A2 --
芯片内部温度 ADC A3 --

4.2 真模拟输出功能 (True Analog Output)

Arduino的 analogWrite 函数虽为模拟写,但是实际输出的是PWM数字信号,并非真正的模拟信号。这是由于Arduino早期使用的AVR单片机并不支持DAC的功能,因此这个习惯就被保留了下来。但是随着Arduino支持芯片的丰富,部分高级芯片已经内建了DAC(例如Arduino官方板MKR、Zero等),因此Arduino的 analogWrite 函数后续也支持了真模拟输出功能。

特殊功能 Arduino引脚编号 STM32引脚编号
真模拟输出 (True Analog Output) DAC0 PA4

在潘多拉板上,使用PA4来当做真模拟输出功能引脚,使用方法为:

analogWrite(DAC0, 128);
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/rtthread/rt-thread.git
git@gitee.com:rtthread/rt-thread.git
rtthread
rt-thread
rt-thread
master

搜索帮助