我想了一个方法,请大家看一下, 因为都是调用的 callback 函数, 所以我在主函数里面写了 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin), 然后在这个函数里面去判断是哪个按键来的中断, 再去进行相应的处理。 但是问题又来了, 如果我 PA10 和 PB 10 产生的中断都是 EXTI10 这个我就没办法判断了。
代码如下:/* USER CODE BEGIN 4 */
void USER_EXTI_S1(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_9);
}
void USER_EXTI_S2(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_8);
}
void USER_EXTI_S3(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_7);
}
void USER_EXTI_S4(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_PIN_0 == GPIO_Pin)
{
USER_EXTI_S1();
}
if(GPIO_PIN_1 == GPIO_Pin)
{
USER_EXTI_S2();
}
if(GPIO_PIN_2 == GPIO_Pin)
{
USER_EXTI_S3();
}
if(GPIO_PIN_10 == GPIO_Pin)
{
USER_EXTI_S4();
}
}
/* USER CODE END 4 */
我想了一个方法,请大家看一下, 因为都是调用的 callback 函数, 所以我在主函数里面写了 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin), 然后在这个函数里面去判断是哪个按键来的中断, 再去进行相应的处理。 但是问题又来了, 如果我 PA10 和 PB 10 产生的中断都是 EXTI10 这个我就没办法判断了。
代码如下:/* USER CODE BEGIN 4 */
void USER_EXTI_S1(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_9);
}
void USER_EXTI_S2(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_8);
}
void USER_EXTI_S3(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_7);
}
void USER_EXTI_S4(void)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_PIN_0 == GPIO_Pin)
{
USER_EXTI_S1();
}
if(GPIO_PIN_1 == GPIO_Pin)
{
USER_EXTI_S2();
}
if(GPIO_PIN_2 == GPIO_Pin)
{
USER_EXTI_S3();
}
if(GPIO_PIN_10 == GPIO_Pin)
{
USER_EXTI_S4();
}
}
/* USER CODE END 4 */
举报