#pragma once #ifdef __cplusplus extern "C" { #endif #include #include #include "main.h" #ifdef __STM32F4xx_HAL_H #include "stm32f4xx.h" #endif #ifdef HAL_CRYP_MODULE_ENABLED #endif #ifdef HAL_ADC_MODULE_ENABLED #endif #ifdef HAL_CAN_MODULE_ENABLED #include "can.h" #endif #ifdef HAL_CRC_MODULE_ENABLED #include "crc.h" #endif #ifdef HAL_CAN_LEGACY_MODULE_ENABLED #endif #ifdef HAL_DAC_MODULE_ENABLED #endif #ifdef HAL_DCMI_MODULE_ENABLED #endif #ifdef HAL_DMA2D_MODULE_ENABLED #endif #ifdef HAL_ETH_MODULE_ENABLED #endif #ifdef HAL_NAND_MODULE_ENABLED #endif #ifdef HAL_NOR_MODULE_ENABLED #endif #ifdef HAL_PCCARD_MODULE_ENABLED #endif #ifdef HAL_SRAM_MODULE_ENABLED #endif #ifdef HAL_SDRAM_MODULE_ENABLED #endif #ifdef HAL_HASH_MODULE_ENABLED #endif #ifdef HAL_I2C_MODULE_ENABLED #endif #ifdef HAL_I2S_MODULE_ENABLED #endif #ifdef HAL_IWDG_MODULE_ENABLED #endif #ifdef HAL_LTDC_MODULE_ENABLED #endif #ifdef HAL_RNG_MODULE_ENABLED #endif #ifdef HAL_RTC_MODULE_ENABLED #endif #ifdef HAL_SAI_MODULE_ENABLED #endif #ifdef HAL_SD_MODULE_ENABLED #endif #ifdef HAL_MMC_MODULE_ENABLED #endif #ifdef HAL_SPI_MODULE_ENABLED #include "spi.h" #endif #ifdef HAL_TIM_MODULE_ENABLED #include "tim.h" #endif #ifdef HAL_UART_MODULE_ENABLED #include "usart.h" #endif #ifdef HAL_USART_MODULE_ENABLED #include "usart.h" #endif #ifdef HAL_IRDA_MODULE_ENABLED #endif #ifdef HAL_SMARTCARD_MODULE_ENABLED #endif #ifdef HAL_SMBUS_MODULE_ENABLED #endif #ifdef HAL_WWDG_MODULE_ENABLED #endif #ifdef HAL_PCD_MODULE_ENABLED #endif #ifdef HAL_HCD_MODULE_ENABLED #endif #ifdef HAL_DSI_MODULE_ENABLED #endif #ifdef HAL_QSPI_MODULE_ENABLED #endif #ifdef HAL_QSPI_MODULE_ENABLED #endif #ifdef HAL_CEC_MODULE_ENABLED #endif #ifdef HAL_FMPI2C_MODULE_ENABLED #endif #ifdef HAL_FMPSMBUS_MODULE_ENABLED #endif #ifdef HAL_SPDIFRX_MODULE_ENABLED #endif #ifdef HAL_DFSDM_MODULE_ENABLED #endif #ifdef HAL_LPTIM_MODULE_ENABLED #endif #ifdef HAL_GPIO_MODULE_ENABLED #include "gpio.h" #endif #ifdef HAL_EXTI_MODULE_ENABLED #endif #ifdef HAL_DMA_MODULE_ENABLED #endif #ifdef HAL_RCC_MODULE_ENABLED #endif #ifdef HAL_FLASH_MODULE_ENABLED #endif #ifdef HAL_PWR_MODULE_ENABLED #endif #ifdef HAL_CORTEX_MODULE_ENABLED #endif typedef enum { PA0 = 0x10, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0 = 0x20, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0 = 0x30, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0 = 0x40, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0 = 0x50, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0 = 0x60, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, PF12, PF13, PF14, PF15, PG0 = 0x70, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, PG13, PG14, PG15, } Pin_t; // GPIO_TypeDef *gpio, uint16_t pin GPIO_TypeDef* chip_get_gpio(Pin_t pin); uint16_t chip_get_pinoff(Pin_t pin); void chip_critical_enter(void); void chip_critical_exit(void); #ifdef __cplusplus } #endif