#pragma once #include #include typedef struct { uint8_t index; } GPIO_TypeDef; typedef struct { } TIM_HandleTypeDef; typedef int HAL_StatusTypeDef; #define HAL_STATUS_OK 0 #define GPIO_PIN_0 ((uint16_t)0x0001) /* Pin 0 selected */ #define GPIO_PIN_1 ((uint16_t)0x0002) /* Pin 1 selected */ #define GPIO_PIN_2 ((uint16_t)0x0004) /* Pin 2 selected */ #define GPIO_PIN_3 ((uint16_t)0x0008) /* Pin 3 selected */ #define GPIO_PIN_4 ((uint16_t)0x0010) /* Pin 4 selected */ #define GPIO_PIN_5 ((uint16_t)0x0020) /* Pin 5 selected */ #define GPIO_PIN_6 ((uint16_t)0x0040) /* Pin 6 selected */ #define GPIO_PIN_7 ((uint16_t)0x0080) /* Pin 7 selected */ #define GPIO_PIN_8 ((uint16_t)0x0100) /* Pin 8 selected */ #define GPIO_PIN_9 ((uint16_t)0x0200) /* Pin 9 selected */ #define GPIO_PIN_10 ((uint16_t)0x0400) /* Pin 10 selected */ #define GPIO_PIN_11 ((uint16_t)0x0800) /* Pin 11 selected */ #define GPIO_PIN_12 ((uint16_t)0x1000) /* Pin 12 selected */ #define GPIO_PIN_13 ((uint16_t)0x2000) /* Pin 13 selected */ #define GPIO_PIN_14 ((uint16_t)0x4000) /* Pin 14 selected */ #define GPIO_PIN_15 ((uint16_t)0x8000) /* Pin 15 selected */ #define GPIO_PIN_All ((uint16_t)0xFFFF) /* All pins selected */ static GPIO_TypeDef GPIOA_b = (GPIO_TypeDef){ .index = 0, }; static GPIO_TypeDef GPIOB_b = (GPIO_TypeDef){ .index = 1, }; static GPIO_TypeDef GPIOC_b = (GPIO_TypeDef){ .index = 2, }; static GPIO_TypeDef GPIOD_b = (GPIO_TypeDef){ .index = 3, }; static GPIO_TypeDef GPIOE_b = (GPIO_TypeDef){ .index = 4, }; #define GPIOA &GPIOA_b #define GPIOB &GPIOB_b #define GPIOC &GPIOC_b #define GPIOD &GPIOD_b #define GPIOE &GPIOE_b typedef enum { GPIO_PIN_RESET = 0u, GPIO_PIN_SET } GPIO_PinState; void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); #define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \ printf("setting autoreload to %d\n", __AUTORELOAD__); #define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__) \ printf("setting prescaler to %d\n", __PRESC__); HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim); HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);