I agree with @bko (since he answered while I typed this up ), but another short term solution is to change these macros like this
STM32_Pin_Info* PIN_MAP2 = HAL_Pin_Map();
#define pinLO(_pin) (PIN_MAP2[_pin].gpio_peripheral->BSRRH = PIN_MAP2[_pin].gpio_pin)
#define pinHI(_pin) (PIN_MAP2[_pin].gpio_peripheral->BSRRL = PIN_MAP2[_pin].gpio_pin)
#define pinSet(_pin, _hilo) (_hilo ? pinHI(_pin) : pinLO(_pin))
But these will be superceded soon by new functions pinResetFast()
, pinSetFast()
and digitalWriteFast()
.
Some background read if youโre interested
Photon and the PIN_MAP[] challenge!
Libraries to Update for the Photon