GD32F130-150 外部中断 AFIO问题,求分析

[复制链接]
2674|21
 楼主| clvert 发表于 2016-12-5 14:00 | 显示全部楼层 |阅读模式
STM32 使用外部中断的话必须开启AFIO时钟。版内搜索关于GD32外部中断各位大侠的发帖,貌似也需要这么操作。

但是,在GD32F130中,如何开启AFIO时钟呢?苦思未果
 楼主| clvert 发表于 2016-12-5 14:37 | 显示全部楼层
本帖最后由 clvert 于 2016-12-5 14:41 编辑

有没有人啊
 楼主| clvert 发表于 2016-12-5 18:14 | 显示全部楼层
这个问题已经找到替代了。但是外部中断还是没进不去
xyz549040622 发表于 2016-12-5 21:41 | 显示全部楼层
你不知道,官方是有例程的吗?照猫画虎就OK了?
 楼主| clvert 发表于 2016-12-6 08:44 | 显示全部楼层
xyz549040622 发表于 2016-12-5 21:41
你不知道,官方是有例程的吗?照猫画虎就OK了?

是的。已经按照官方例程解决。谢谢你
 楼主| clvert 发表于 2016-12-6 08:44 | 显示全部楼层
教训就是网上的参考代码一定是参考用,要以官方代码为基准。
hengda125 发表于 2016-12-6 08:54 | 显示全部楼层
参照官方历程,里面有类似的程序可以开启AFIO时钟。

评分

参与人数 1威望 +2 收起 理由
clvert + 2 赞一个!

查看全部评分

 楼主| clvert 发表于 2016-12-6 08:56 | 显示全部楼层
hengda125 发表于 2016-12-6 08:54
参照官方历程,里面有类似的程序可以开启AFIO时钟。

谢谢
xyz549040622 发表于 2016-12-6 10:14 | 显示全部楼层
clvert 发表于 2016-12-6 08:44
教训就是网上的参考代码一定是参考用,要以官方代码为基准。

对的。一切以官方为准。我有一次更坑,网上下的库文件都是被修改过的。

评分

参与人数 1威望 +2 收起 理由
clvert + 2 很给力!

查看全部评分

xyz549040622 发表于 2016-12-6 10:14 | 显示全部楼层
clvert 发表于 2016-12-6 08:44
教训就是网上的参考代码一定是参考用,要以官方代码为基准。

对的。一切以官方为准。我有一次更坑,网上下的库文件都是被修改过的。

评分

参与人数 1威望 +2 收起 理由
clvert + 2 很给力!

查看全部评分

 楼主| clvert 发表于 2016-12-6 10:56 | 显示全部楼层
xyz549040622 发表于 2016-12-6 10:14
对的。一切以官方为准。我有一次更坑,网上下的库文件都是被修改过的。 ...

确实是大坑
whtwhtw 发表于 2016-12-6 11:39 | 显示全部楼层
完全可以用STM的库编程,GD和STM不仅是PIN-PIN,还是寄存器-寄存器
 楼主| clvert 发表于 2016-12-7 08:48 | 显示全部楼层
whtwhtw 发表于 2016-12-6 11:39
完全可以用STM的库编程,GD和STM不仅是PIN-PIN,还是寄存器-寄存器

我目前用的是GD的库
whtwhtw 发表于 2016-12-7 11:22 | 显示全部楼层
GD和ST的库就是寄存器名称不一样,其它大同小异
comeon201208 发表于 2016-12-7 22:41 | 显示全部楼层
AFIO时钟?这个我还是第一次注意的,,下去查下
 楼主| clvert 发表于 2016-12-9 08:31 | 显示全部楼层
whtwhtw 发表于 2016-12-7 11:22
GD和ST的库就是寄存器名称不一样,其它大同小异

是的
Dennis-Zhou 发表于 2016-12-21 20:04 | 显示全部楼层
GD有例程的,不出意外的话,AFIO的函数应该还是在sys的库中了。
baimiaocun2015 发表于 2016-12-22 22:41 | 显示全部楼层
AFIO是复用管脚的还是?
carefull3357dc 发表于 2016-12-25 11:47 | 显示全部楼层
建议使用 stm32cube 配置一下。
ljmf5 发表于 2017-4-6 18:33 | 显示全部楼层
本帖最后由 ljmf5 于 2017-4-6 18:34 编辑

楼主能否把代码贴出来看看,我的外部中断进入不了
代码如下:

  1.        
  2. void EXTI7_config(void)
  3. {
  4.                 GPIO_InitPara GPIO_InitStructure;
  5.     EXTI_InitPara EXTI_InitStructure;
  6.     NVIC_InitPara NVIC_InitStructure;
  7.     /* Enable the KEY Clock */
  8.     RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOA, ENABLE);
  9.     RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_CFG, ENABLE);
  10. //                GPIO_PinAFConfig(GPIOA, GPIO_PINSOURCE7, GPIO_AF_8);
  11.     /* Configure Button pin as input */
  12.     GPIO_InitStructure.GPIO_Mode = GPIO_MODE_IN;
  13.     GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_NOPULL;
  14.     GPIO_InitStructure.GPIO_Pin = GPIO_PIN_7;
  15.     GPIO_Init(GPIOA, &GPIO_InitStructure);
  16.         /* Enable and set key EXTI Interrupt to the lowest priority */
  17.         NVIC_InitStructure.NVIC_IRQ = EXTI4_15_IRQn;
  18.         NVIC_InitStructure.NVIC_IRQPreemptPriority = 2;
  19.         NVIC_InitStructure.NVIC_IRQSubPriority = 0;
  20.         NVIC_InitStructure.NVIC_IRQEnable = ENABLE;
  21.         NVIC_Init(&NVIC_InitStructure);
  22.         /* Connect key EXTI Line to key GPIO Pin */
  23.         SYSCFG_EXTILine_Config(EXTI_SOURCE_GPIOA, EXTI_SOURCE_PIN7);
  24.         /* Configure key EXTI line */
  25.         EXTI_InitStructure.EXTI_LINE = EXTI_LINE7;
  26.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  27.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;   
  28.         EXTI_InitStructure.EXTI_LINEEnable = ENABLE;
  29.         EXTI_Init(&EXTI_InitStructure);
  30.         EXTI_ClearIntBitState(EXTI_LINE7);
  31. }

  32. static unsigned int i;
  33. void EXTI4_15_IRQHandler(void)
  34. {
  35.     if(EXTI_GetIntBitState(EXTI_LINE7) != RESET)
  36.     {
  37.         printf("i=%d\r\n", i++);
  38.         EXTI_ClearIntBitState(EXTI_LINE7);
  39.     }
  40. }


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

本版积分规则

13

主题

111

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部