Всем добра.
Не понравилась реализация ногодрыга для HAL, решил упростить себе жизнь.
В итоге получился короткий макрос, который позволяет под HAL дрыгать ножками с простотой Ардуино.
#define digitalWrite(_pin,_state) HAL_GPIO_WritePin(_pin##_GPIO_Port,_pin##_Pin, _state)
В скобках указываем наименование пина (которое в stm32cube мы указываем в качестве label’a) и его состояние (0/1).
А лучше дополнительно дейфайним:
#define OFF GPIO_PIN_RESET
#define ON GPIO_PIN_SET
И убираем warning’и которые будут если в функцию будет передаваться не указанный где то в дебрях enum, а литерал (1/0).
Ну и собственно получаем работающий :
digitalWrite(myPin,ON);
За место унылого:
HAL_GPIO_WritePin(myPin_GPIO_Port,myPin_Pin, GPIO_PIN_SET);