20 DIO(uint32_t pin, GPIO_TypeDef *port,
21 uint32_t mode = GPIO_MODE_OUTPUT_PP,
22 uint32_t pull = GPIO_NOPULL) {
25 GPIO_InitTypeDef GPIO_InitStruct = {};
26 GPIO_InitStruct.Pin = iPin;
27 GPIO_InitStruct.Mode = mode;
28 GPIO_InitStruct.Pull = pull;
29 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
30 HAL_GPIO_Init(port, &GPIO_InitStruct);
38 HAL_GPIO_WritePin(port, iPin, (GPIO_PinState) high);
46 return HAL_GPIO_ReadPin(port, iPin);
53 HAL_GPIO_TogglePin(port, iPin);
62 AFIO(uint32_t pin, GPIO_TypeDef *port, uint32_t alternate,
63 uint32_t pull = GPIO_NOPULL,
64 uint32_t speed = GPIO_SPEED_FREQ_LOW,
65 uint32_t mode = GPIO_MODE_AF_PP) {
66 GPIO_InitTypeDef GPIO_InitStruct = {};
67 GPIO_InitStruct.Pin = pin;
68 GPIO_InitStruct.Mode = mode;
69 GPIO_InitStruct.Pull = pull;
70 GPIO_InitStruct.Speed = speed;
71 GPIO_InitStruct.Alternate = alternate;
72 HAL_GPIO_Init(port, &GPIO_InitStruct);