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

STM32F103ZE 按键中断不执行

[复制链接]
select326 提问时间:2018-4-1 22:09 /
阅读主题, 点击返回1楼
收藏 评论23 发布时间:2018-4-1 22:09
23个回答
select326 回答时间:2018-4-2 10:24:50
butterflyspring 发表于 2018-4-2 10:17
中断首先需要各个时钟开启,GPIO功能使能,中断开启,优先级开启.实在找不到,先调试好的代码,查看寄存器,再调 ...

谢谢,按照这个思路我再查查
wenyangzeng 回答时间:2018-4-2 10:52:06
select326 发表于 2018-4-2 10:09
我是新手,还请指点


void EXT0_IRQHandler(void)
{

  if(EXTI_GetITStatus(EXTI_Line0) != RESET)
  {
     EXTI_ClearITPendingBit(EXTI_Line0);
               
  }


}
select326 回答时间:2018-4-2 11:26:32
wenyangzeng 发表于 2018-4-2 10:52
void EXT0_IRQHandler(void)
{


void EXTI4_IRQHandler(void)
{
        delay_ms(10);//消抖

        EXTI_ClearITPendingBit(EXTI_Line4);  //清除LINE4上的中断标志位  
}

我在这里面打断点,无法触发按键没任何响应。。。
wenyangzeng 回答时间:2018-4-2 11:47:47
select326 发表于 2018-4-2 11:26
void EXTI4_IRQHandler(void)
{
        delay_ms(10);//消抖

EXTI_GenerateSWInterrupt(EXTI_Line4);
就可以判断EXTI4中断配置是否正确
MrJiu 回答时间:2018-4-2 11:56:38
select326 发表于 2018-4-2 11:26
void EXTI4_IRQHandler(void)
{
        delay_ms(10);//消抖

牛逼。。。中断里面硬件延时10ms。。。膜拜!!!
select326 回答时间:2018-4-2 13:05:46
本帖最后由 select326 于 2018-4-2 13:10 编辑
MrJiu 发表于 2018-4-2 11:56
牛逼。。。中断里面硬件延时10ms。。。膜拜!!!

问题是,都不执行中断里面的代码。。。。
再说了,从正点原子拿的例子拿的代码
miracle533 回答时间:2018-4-2 15:46:29
while(1)里边就一个延时函数吗?
想进入中断的话我觉得while里边起码要有个判断按键按下的函数吧,要记得加上消抖。

评分

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

查看全部评分

toofree 回答时间:2018-4-2 23:16:37
中断中延时10ms,这个不应该。但是你说的不进中断,那可能另有问题。
void EXTI4_IRQHandler(void)
{
        delay_ms(10);//消抖

        EXTI_ClearITPendingBit(EXTI_Line4);  //清除LINE4上的中断标志位  
}

经过查看你的程序,你的外部中断使能在哪里?
EXTI_InitStructure.EXTI_LineCmd = ENABLE;

加上使能试试,见下图。
傲游截图20180402231547.jpg



评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

select326 回答时间:2018-4-3 09:48:16
toofree 发表于 2018-4-2 23:16
中断中延时10ms,这个不应该。但是你说的不进中断,那可能另有问题。
void EXTI4_IRQHandler(void)
{

这个确实没有。但是,正点原子的例子是可以执行的。
后来我比较了下,我发下一个RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
有这句,中断就能执行,没有的话,原子的例子也不能中断。很奇怪,串口和中断有什么关系?
wolfgang2015 回答时间:2018-4-3 11:30:52
按键这不执行简单得就两个问题:
1、中断未打开;
2、中断开错了;

如果深入你会发现还有一个问题会造成无按键中断产生:
就是中断的映射位与其他中断映射位冲突。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版