野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9336|回复: 6

F7外中断配置

[复制链接]
发表于 2017-7-26 18:25:01 | 显示全部楼层 |阅读模式
请教高手们,,F7外中断线要准确的配置给ABCDEFJ的哪个口,在哪里配置的,,例程里没看到相关的语句或函数呀!!谢谢各位指点下!!另外5到9和10到15是不是只能配置给一个口的5到9或10到15呀!!!能配置给A口5与B口9么?感谢各位指点一二!!!

回复

使用道具 举报

发表于 2017-7-26 19:37:07 | 显示全部楼层
打个比方,PA0和PB0对应的是同一条中断线EXTI0_IRQn,如果要细分是PA0或者PB0则要中断函数里边判断对应IO口输入的电平。PA5口和PB9都属于EXTI15_10_IRQn,同理无论哪个口发生中断都会进入同一个中断函数,只能在中断函数里边读一次两个IO口的电平才能细分是哪一个口引起的中断。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-26 20:22:58 | 显示全部楼层
首先谢谢,,,但是如果我只要PA0中断,,在中断时,如果同时PB0也作为输入正好也是低电平????你怎么看??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-26 20:27:07 | 显示全部楼层
那我理解 为没有具体配置到A0还是B0的函数和代码,,只有这条线中断了去查,且只能用一个口为中断???实际每个口只要有对应动作都会进入一次中断,只是不是自己想要的就不执行服务程序吗???也就是没有配置A还是B还是C的代码?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-26 20:29:29 | 显示全部楼层
cancore 发表于 2017-7-26 19:37
打个比方,PA0和PB0对应的是同一条中断线EXTI0_IRQn,如果要细分是PA0或者PB0则要中断函数里边判断对应IO口 ...

那我理解 为没有具体配置到A0还是B0的函数和代码,,只有这条线中断了去查,且只能用一个口为中断???实际每个口只要有对应动作都会进入一次中断,只是不是自己想要的就不执行服务程序吗???也就是没有配置A还是B还是C的代码?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-26 20:36:56 | 显示全部楼层
cancore 发表于 2017-7-26 19:37
打个比方,PA0和PB0对应的是同一条中断线EXTI0_IRQn,如果要细分是PA0或者PB0则要中断函数里边判断对应IO口 ...

所以是A0还是B0的中断肯定得区分,,比如要用A0下降中断,这时A0中断过一次,,还没有恢复成高电平,,B0又来了一次下降沿,,这时肯定得进入中断程序,,查A0还是低电平???是不是认为又来了一次中断呀!!所以不分别配置肯定不行!!有什么建议么??谢谢
回复 支持 反对

使用道具 举报

发表于 2017-7-27 09:17:35 | 显示全部楼层
IO中断不建议共用同一条中断线,IO怎么配置看这个例程《10-EXTI—外部中断》,初始化的时候已经明确是哪一个IO口的中断
  1. void EXTI_Key_Config(void)
  2. {
  3.     GPIO_InitTypeDef GPIO_InitStructure;

  4.     /*开启按键GPIO口的时钟*/
  5.     KEY1_INT_GPIO_CLK_ENABLE();
  6.     KEY2_INT_GPIO_CLK_ENABLE();

  7.     /* 选择按键1的引脚 */
  8.     GPIO_InitStructure.Pin = KEY1_INT_GPIO_PIN;
  9.     /* 设置引脚为输入模式 */
  10.     GPIO_InitStructure.Mode = GPIO_MODE_IT_RISING;                           
  11.     /* 设置引脚不上拉也不下拉 */
  12.     GPIO_InitStructure.Pull = GPIO_NOPULL;
  13.     /* 使用上面的结构体初始化按键 */
  14.     HAL_GPIO_Init(KEY1_INT_GPIO_PORT, &GPIO_InitStructure);
  15.     /* 配置 EXTI 中断源 到key1 引脚、配置中断优先级*/
  16.     HAL_NVIC_SetPriority(KEY1_INT_EXTI_IRQ, 0, 0);
  17.     /* 使能中断 */
  18.     HAL_NVIC_EnableIRQ(KEY1_INT_EXTI_IRQ);

  19.     /* 选择按键2的引脚 */
  20.     GPIO_InitStructure.Pin = KEY2_INT_GPIO_PIN;  
  21.     /* 其他配置与上面相同 */
  22.     HAL_GPIO_Init(KEY2_INT_GPIO_PORT, &GPIO_InitStructure);      
  23.     /* 配置 EXTI 中断源 到key1 引脚、配置中断优先级*/
  24.     HAL_NVIC_SetPriority(KEY2_INT_EXTI_IRQ, 0, 0);
  25.     /* 使能中断 */
  26.     HAL_NVIC_EnableIRQ(KEY2_INT_EXTI_IRQ);
  27. }
复制代码


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-16 13:24 , Processed in 0.028184 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表