/* Includes ----------------------------------------------------------------- */ #include "bsp.h" #include /* Private define ----------------------------------------------------------- */ /* Private macro ------------------------------------------------------------ */ /* Private typedef ---------------------------------------------------------- */ /* Private variables -------------------------------------------------------- */ static void (*GPIO_Callback[16])(void); /* Private function -------------------------------------------------------- */ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { for (uint8_t i = 0; i < 16; i++) { if (GPIO_Pin & (1 << i)) { if (GPIO_Callback[i]) { GPIO_Callback[i](); } } } } /* Exported functions ------------------------------------------------------- */ // int8_t BSP_GPIO_RegisterCallback(uint16_t pin, void (*callback)(void)) { // if (callback == NULL) return BSP_ERR_NULL; // for (uint8_t i = 0; i < 16; i++) { // if (pin & (1 << i)) { // GPIO_Callback[i] = callback; // break; // } // } // return BSP_OK; // } // int8_t BSP_GPIO_EnableIRQ(uint16_t pin) { // switch (pin) { // case KEY_Pin: // HAL_NVIC_EnableIRQ(KEY_Pin); // break; // /* // case XXX_Pin: // HAL_NVIC_EnableIRQ(XXX_IRQn); // break; // */ // default: // return BSP_ERR; // } // return BSP_OK; // } // int8_t BSP_GPIO_DisableIRQ(uint16_t pin) { // switch (pin) { // case KEY_Pin: // HAL_NVIC_DisableIRQ(KEY_IRQn); // break; // /* // case XXX_Pin: // HAL_NVIC_EnableIRQ(XXX_IRQn); // break; // */ // default: // return BSP_ERR; // } // return BSP_OK; // }