你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

还是关于按键中断的问题

[复制链接]
NapoleonWang 提问时间:2020-6-25 14:34 /
我板子上有多个按键,我都使用中断方式处理。我发现,初始化NVIC时,三个按键如果或上时,如图,就不进中断了,如下图所示:
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn|EXTI1_IRQn|EXTI15_10_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
如果分开初始化就ok了:
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel =EXTI15_10_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

其实不仅仅是nvic,还有exti 的初始化也要分开,不然就会导致进不了中断或者是按K1按键也会进入K2 中断。 so, 我想问一句,为神马????



收藏 评论2 发布时间:2020-6-25 14:34

举报

2个回答
NapoleonWang 回答时间:2020-6-25 14:36:20
我记得GPIO_Typedef 的初始化化都是或上的啊??
mylovemcu 回答时间:2020-6-28 14:59:50
这个就不可以这样做的  看一下值就明白了

EXTI0_IRQn是6  EXTI1_IRQn是7  这两个相或一下是几?这已经变成另外一个值了  而不是这两个值的或

这个和引脚初始化不一样  引脚初始化的每一位代表一个引脚  但这个不是   所以这个不可以用或

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版