• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

外部中断PA8和PB8如何区分

蓝蓝的天 2019-03-07 浏览量:1638
我板子上有十个按键,用外部中断检测。
可是有两个8通道,一个PA8,一个PB8。
那在程序里如何区分呢?谢谢!
if(EXTI_GetITStatus(EXTI_Line8)!=RESET) //停止
{

 

GPIO_ResetBits(GPIOAGPIO_Pin_12); //灯亮

 
for(i=0;i<98000;i++);
Uart1_SendString(StopData3);

GPIO_SetBits(GPIOAGPIO_Pin_12);

//清除中断标志

EXTI_ClearITPendingBit(EXTI_Line8);


}
1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • STM32的外部中断线EXTI_LineX一个线只能挂一个端口,不能复用。
    比如EXTI_Line15  可以挂在PA15 也可以挂到PB15。不能同时挂
    11.jpg

    • 发布于 2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 因为都是8所以进入中断还要判断哪个是pa8还是pb8进入的,就是和普通的按键读取一样
    • 发布于2019-03-07
    • 举报
    • 评论 1
    • 0
    • 0
蓝蓝的天 回复了 yhj416606438 :谢谢! 我试了一下,有问题。我先判断PA8,再判断PB8,结果PA8检测不到,PB8可以检测到。还有一个15通道。也是这样,一个PA15,一个PB15,放在前面判断的检测不到。 回复

  • 先判断是哪一组通道,再判断哪一个IO口
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 先判断是哪一组通道,再判断哪一个IO口。
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 先判断中断通道,再具体判断是那个具体的口
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 中断触发后读取一下IO的电平值,就能确定哪一路触发的中断
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 是可以指定引脚中断的中断组与优先级的,通过这些在中断函数中区分
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接在外部中断5_9的中断服务函数里面判断是PA8还是PB8引脚被拉低了,你代码里那个if只是判断了中断触发标志位,没做引脚判断。

    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

外部中断PA8和PB8如何区分