4
0
mirror of https://github.com/RT-Thread/rt-thread.git synced 2025-01-26 18:47:21 +08:00
2022-08-05 11:51:40 -04:00

6.3 KiB
Raw Blame History

STM32F103 Blue-Pill开发板的Arduino生态兼容说明

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

STM32F103 Blue-Pill开发板已经完整适配了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 --->
        [*] Support Arduino

2 Arduino引脚排布

blue-pill-f103-pinout

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

Arduino引脚编号 STM32引脚编号 5V容忍 备注
0 (D0) -- 该引脚在UNO板中为串口RX引脚不可当做普通IO
1 (D1) -- 该引脚在UNO板中为串口TX引脚不可当做普通IO
2 (D2) PB9 I2C1-SDA被RT-Thread的I2C设备框架i2c1总线接管不可当做普通IO
3 (D3) PB8 I2C1_SCL被RT-Thread的I2C设备框架i2c1总线接管不可当做普通IO
4 (D4) PB7
5 (D5) PB6
6 (D6) PB5 PWM3-CH2定时器3发生
7 (D7) PB4 PWM3-CH1定时器3发生
8 (D8) PB3 PWM2-CH2定时器2发生
9 (D9) PA15 PWM2-CH1定时器2发生
10 (D10) PA12 USB-DB不可当做普通IO
11 (D11) PA11 USB-DM不可当做普通IO
12 (D12) PA10 UART1-RX被RT-Thread的UART设备框架uart1接管不可当做普通IO
13 (D13) PA9 UART1-RX被RT-Thread的UART设备框架uart1接管不可当做普通IO
14 (D14) PA8 PWM1-CH1定时器1发生
15 (D15) PB15
16 (D16) PB14
17 (D17) PB13 PWM1-CH1N定时器1发生
18 (D18) PB12
19 (D19) PC13 板载LED默认引脚
20 (D20) PC14
21 (D21) PC15
22 (D22) PA2 UART2-TX被RT-Thread的UART设备框架uart2接管不可当做普通IO
23 (D23) PA3 UART2-RX被RT-Thread的UART设备框架uart2接管不可当做普通IO
24 (D24) PA5 SPI-SCK SPI功能尚未完全实现目前仅作普通IO使用
25 (D25) PA6 SPI-MISOSPI功能尚未完全实现目前仅作普通IO使用
26 (D26) PA7 SPI-MOSISPI功能尚未完全实现目前仅作普通IO使用
27 (D27) PB10 UART3-TX被RT-Thread的UART设备框架uart3接管不可当做普通IO
28 (D28) PB11 UART3-RX被RT-Thread的UART设备框架uart3接管不可当做普通IO
A0 PA0 ADC
A1 PA1 ADC
A2 PA4 ADC
A3 PB0 ADC
A4 PB1 ADC
A5 -- 芯片内部参考电压 ADC
A6 -- 芯片内部温度 ADC

注意:

  1. 驱动舵机和analogWrite函数要选择不同定时器发生的PWM信号引脚由于STM32的定时器4个通道需要保持相同的频率如果采用相同的定时器发生的PWM分别驱动舵机和analogWrite可能会导致舵机失效。
  2. D10引脚是PWM反相位引脚(也就是常说的互补输出引脚CHxN)。但是这里不用考虑到占空比互补问题CHx-20%CHxN-80%),直接正常使用即可。
  3. STM32的PA15引脚默认作为JTAG下载使用但是如果采用SWD调试时PA15(D9)可以作为普通的IO口使用但是需要设置一些寄存器。

参考资料

  1. 暂无

3 I2C总线

STM32F103 Blue-Pill板的I2C总线是板上丝印的 SCL/D3SDA/D2 引脚这两个引脚是被RT-Thread I2C设备框架接管的不需要直接操控这两个引脚直接引用#include <Wire.h>Arduino官方I2C头文件即可使用。