Skip to content

Commit fd6d2f6

Browse files
Merge pull request firmata#378 from fpistm/arduino_core_stm32
Add support for STM32 MCU based boards
2 parents ecfea68 + 138a39f commit fd6d2f6

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

Boards.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,26 @@ writePort(port, value, bitmask): Write an 8 bit port.
780780
#define PIN_TO_SERVO(p) (p)
781781
#define DEFAULT_PWM_RESOLUTION 10
782782

783+
// STM32 based boards
784+
#elif defined(ARDUINO_ARCH_STM32)
785+
#define TOTAL_ANALOG_PINS NUM_ANALOG_INPUTS
786+
#define TOTAL_PINS NUM_DIGITAL_PINS
787+
#define TOTAL_PORTS MAX_NB_PORT
788+
#define VERSION_BLINK_PIN LED_BUILTIN
789+
// PIN_SERIALY_RX/TX defined in the variant.h
790+
#define IS_PIN_DIGITAL(p) (digitalPinIsValid(p) && !pinIsSerial(p))
791+
#define IS_PIN_ANALOG(p) ((p >= A0) && (p < AEND) && !pinIsSerial(p))
792+
#define IS_PIN_PWM(p) (IS_PIN_DIGITAL(p) && digitalPinHasPWM(p))
793+
#define IS_PIN_SERVO(p) IS_PIN_DIGITAL(p)
794+
#define IS_PIN_I2C(p) (IS_PIN_DIGITAL(p) && digitalPinHasI2C(p))
795+
#define IS_PIN_SPI(p) (IS_PIN_DIGITAL(p) && digitalPinHasSPI(p))
796+
#define IS_PIN_INTERRUPT(p) (IS_PIN_DIGITAL(p) && (digitalPinToInterrupt(p) > NOT_AN_INTERRUPT)))
797+
#define IS_PIN_SERIAL(p) (digitalPinHasSerial(p) && !pinIsSerial(p))
798+
#define PIN_TO_DIGITAL(p) (p)
799+
#define PIN_TO_ANALOG(p) (p-A0)
800+
#define PIN_TO_PWM(p) (p)
801+
#define PIN_TO_SERVO(p) (p)
802+
#define DEFAULT_PWM_RESOLUTION PWM_RESOLUTION
783803

784804
// anything else
785805
#else

0 commit comments

Comments
 (0)