rt-thread-official/bsp/stm32/stm32f072-st-nucleo/applications/arduino_pinout
Meco Man 1a240798fa [RTduino] pins_arduino.h add limit check 2024-03-08 09:39:57 +08:00
..
README.md [RTduino][readme] correct grammar 2023-01-13 11:40:57 +08:00
README_zh.md [bsp][rtduino] update readme 2022-10-12 14:20:46 +08:00
SConscript [rtduino] 修正pinout_arduino文件所在Group名称 2022-11-05 10:56:36 -04:00
nucleo-f072-pinout.png [stm32f401-nucleo] arduino support (#5842) 2022-04-20 09:09:58 +08:00
pins_arduino.c [stm32][rtduino] add drv_gpio.h for pins_arduino.c 2023-12-23 14:36:30 +08:00
pins_arduino.h [RTduino] pins_arduino.h add limit check 2024-03-08 09:39:57 +08:00

README.md

The Arduino Compatible for STM32F072 Nucleo Board

English | 中文

1 RTduino - Arduino Ecosystem Compatibility Layer for RT-Thread

STM32F072 Nucleo board has support RTduino. Users can use Arduino APIs, third party libraries and programming method to program on the board.

1.1 How to Enable RTduino

Please go to the RTduino repository to see the details.

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

2 Arduino Pinout

nucleo-f072-pinout

This board complies with Arduino UNO pins layout. For more details, please take a look at: pins_arduino.c and pins_arduino.h.

Arduino Pin STM32 Pin 5V Tolerate Note
0 (D0) PA3 No Serial-Rx. Token over by RT-Thread UART device by default
1 (D1) PA2 No Serial-Tx. Token over by RT-Thread UART device by default
2 (D2) PA10 Yes
3 (D3) PB3 Yes PWM2-CH2. Token over by RT-Thread PWM device by default
4 (D4) PB5 Yes
5 (D5) PB4 Yes PWM3-CH1. Token over by RT-Thread PWM device by default
6 (D6) PB10 Yes PWM2-CH3. Token over by RT-Thread PWM device by default
7 (D7) PA8 Yes
8 (D8) PA9 Yes
9 (D9) PC7 Yes PWM3-CH2. Token over by RT-Thread PWM device by default
10 (D10) PB6 Yes PWM16-CHN1. Token over by RT-Thread PWM device by default
11 (D11) PA7 No PWM17-CH1. Token over by RT-Thread PWM device by default
12 (D12) PA6 No
13 (D13, LED_BUILTIN) PA5 No USER LED
14 (D14) PB9 Yes I2C-SDA. Token over by RT-Thread I2C device by default
15 (D15) PB8 Yes I2C-SCL. Token over by RT-Thread I2C device by default
16 (D16) PC13 No USER Button
A0 PA0 No ADC1-CH0. Token over by RT-Thread ADC device by default
A1 PA1 No ADC1-CH1. Token over by RT-Thread ADC device by default
A2 PA4 No ADC1-CH4. Token over by RT-Thread ADC device by default
A3 PB0 No ADC1-CH8. Token over by RT-Thread ADC device by default
A4 PC1 No ADC1-CH11. Token over by RT-Thread ADC device by default
A5 PC0 No ADC1-CH10. Token over by RT-Thread ADC device by default
A6 -- On-chip internal voltage sensor. ADC1-CH17. Token over by RT-Thread ADC device by default
A7 -- On-chip internal temperature sensor. ADC1-CH16. Token over by RT-Thread ADC device by default

Notice:

  1. Don't use a same hardware timer to drive PWM (analogRead) and servos at same time, because hardware timers can only generate a same frequency for 4 PWM channels. Otherwise, it could cause a failure when drive servos.

References

  1. STM32 Nucleo-64 user manual

3 Communication

3.1 I2C Bus

I2C bus is SCL/D15 and SDA/D14 pins. Users can directly include the #include <Wire.h>, which is the Arduino official I2C header file, to use the I2C bus.

3.2 SPI Bus

This board doesn't support Arduino SPI header file and functions.

3.3 Serial

This board supports to use Serial. method to operate uart2 device. See example.