## 1 RTduino - Arduino Ecosystem Compatibility Layer for RT-Thread
### 1.1 如何开启针对本BSP的Arduino生态兼容层
STM32F411 Nucleo board has support [RTduino](https://github.com/RTduino/RTduino). Users can use Arduino APIs, third party libraries and programming method to program on the board.
Env 工具下敲入 menuconfig 命令,或者 RT-Thread Studio IDE 下选择 RT-Thread Settings:
### 1.1 How to Enable RTduino
Please go to the [RTduino repository](https://github.com/RTduino/RTduino) to see the details.
This board complies with Arduino UNO pins layout. For more details, please take a look at: [pins_arduino.c](pins_arduino.c) and [pins_arduino.h](pins_arduino.h).
> 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.
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总线
### 3.2 SPI Bus
目前本BSP不支持使用Arduino的SPI功能。
This board doesn't support Arduino SPI header file and functions.
This board supports to use `Serial.` method to operate `uart2` device. See [example](https://github.com/RTduino/RTduino/blob/master/examples/Basic/helloworld.cpp).