OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2509|回复: 4

求救!!f103外部中断,研究一天了实在没招了

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-12-4
在线时间
7 小时
发表于 2019-12-4 19:23:18 | 显示全部楼层 |阅读模式
本帖最后由 A张超 于 2019-12-4 20:40 编辑

程序也不报错就是没有现象哪位大佬帮忙看看啊,我在外面加了一个按键想通过这个按键实现外部中断
看一下代码
exti.c文件

#include "stm32f10x.h"
#include "exti.h"
#include "key.h"
void EXTIX_Init(void)
{
EXTI_InitTypeDef E;
NVIC_InitTypeDef N;
  KEY_Init();
  RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO ,ENABLE );

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
E.EXTI_Line = EXTI_Line0;
E.EXTI_LineCmd = ENABLE;
E.EXTI_Mode = EXTI_Mode_Interrupt;
E.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_Init(&E);


N.NVIC_IRQChannel = EXTI0_IRQn;
N.NVIC_IRQChannelCmd = ENABLE;
N.NVIC_IRQChannelPreemptionPriority = 1;
N.NVIC_IRQChannelSubPriority = 1;
NVIC_Init(&N);
}




key.c文件
#include "stm32f10x.h"
#include "key.h"
#include "delay.h"

void KEY_Init(void)
{
GPIO_InitTypeDef K;
RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA ,ENABLE );

K.GPIO_Mode = GPIO_Mode_IPU;
K.GPIO_Pin = GPIO_Pin_0;

GPIO_Init (GPIOA,&K);


}

main.c文件
#include "stm32f10x.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "delay.h"

void EXTI0_IRQHandler(void)
{

delay_ms(10);



     if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == 1)
    {
     

      LED0 =! LED0;
   
   
   
    }
   
   
   

    EXTI_ClearITPendingBit(EXTI_Line0);

}
int main(void)
{
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
EXTIX_Init();
delay_init();
  KEY_Init();
  LED_Init();
LED0 = 0;
  while(1)
{
   
}

}
IMG_20191204_134431.jpg


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

882

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3071
金钱
3071
注册时间
2018-2-7
在线时间
285 小时
发表于 2019-12-5 16:10:02 | 显示全部楼层
回复 支持 反对

使用道具 举报

64

主题

446

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1032
金钱
1032
注册时间
2017-7-26
在线时间
275 小时
发表于 2019-12-5 16:18:13 | 显示全部楼层
上下拉电阻你有不?没有的话IO需要设置

还有RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO ,ENABLE );
好久没用标准库了  你确定一下这句是否用来开启时钟RCC_APB2PeriphResetCmd
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2019-12-4
在线时间
7 小时
 楼主| 发表于 2019-12-8 08:44:28 来自手机 | 显示全部楼层
a3748622 发表于 2019-12-5 16:18
上下拉电阻你有不?没有的话IO需要设置

还有RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO ,ENABLE );

解决了,谢谢,那个AFIO是复用时钟
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2018-12-29
在线时间
19 小时
发表于 2020-6-8 15:59:02 | 显示全部楼层
A张超 发表于 2019-12-8 08:44
解决了,谢谢,那个AFIO是复用时钟

什么原因
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 22:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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