Skip to content

Commit 5d37416

Browse files
committed
[STM32] Update analog macro
Since STM32 core version 1.8.0, analog pins definition can be not contiguous Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent 4d0742f commit 5d37416

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Boards.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -859,15 +859,23 @@ writePort(port, value, bitmask): Write an 8 bit port.
859859
#endif
860860
// PIN_SERIALY_RX/TX defined in the variant.h
861861
#define IS_PIN_DIGITAL(p) (digitalPinIsValid(p) && !pinIsSerial(p))
862+
#if !defined(STM32_CORE_VERSION) || (STM32_CORE_VERSION <= 0x01080000)
862863
#define IS_PIN_ANALOG(p) ((p >= A0) && (p < (A0 + TOTAL_ANALOG_PINS)) && !pinIsSerial(p))
864+
#else
865+
#define IS_PIN_ANALOG(p) (pinIsAnalogInput(p) && !pinIsSerial(p))
866+
#endif
863867
#define IS_PIN_PWM(p) (IS_PIN_DIGITAL(p) && digitalPinHasPWM(p))
864-
#define IS_PIN_SERVO(p) IS_PIN_DIGITAL(p)
868+
#define IS_PIN_SERVO(p) (IS_PIN_DIGITAL(p))
865869
#define IS_PIN_I2C(p) (IS_PIN_DIGITAL(p) && digitalPinHasI2C(p))
866870
#define IS_PIN_SPI(p) (IS_PIN_DIGITAL(p) && digitalPinHasSPI(p))
867871
#define IS_PIN_INTERRUPT(p) (IS_PIN_DIGITAL(p) && (digitalPinToInterrupt(p) > NOT_AN_INTERRUPT)))
868872
#define IS_PIN_SERIAL(p) (digitalPinHasSerial(p) && !pinIsSerial(p))
869873
#define PIN_TO_DIGITAL(p) (p)
874+
#if !defined(STM32_CORE_VERSION) || (STM32_CORE_VERSION <= 0x01080000)
870875
#define PIN_TO_ANALOG(p) (p-A0)
876+
#else
877+
#define PIN_TO_ANALOG(p) (digitalPinToAnalogInput(p))
878+
#endif
871879
#define PIN_TO_PWM(p) (p)
872880
#define PIN_TO_SERVO(p) (p)
873881
#define DEFAULT_PWM_RESOLUTION PWM_RESOLUTION

0 commit comments

Comments
 (0)