野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17928|回复: 5

关于按键中断的(新人求助)

[复制链接]
发表于 2014-7-8 11:46:34 | 显示全部楼层 |阅读模式
火哥,我在LED的例程里直接添加EXTI的C和H文件,也按照教程上的来做好相应配置了,但是还是会报错
..\..\User\key\bsp_exti.c(27): error:  #20: identifier "NVIC_InitTypeDef" is undefined
..\..\User\key\bsp_exti.c(30): warning:  #223-D: function "NVIC_PriorityGroupConfig" declared implicitly
..\..\User\key\bsp_exti.c(30): error:  #20: identifier "NVIC_PriorityGroup_1" is undefined
..\..\User\key\bsp_exti.c(37): warning:  #223-D: function "NVIC_Init" declared implicitly
..\..\User\key\bsp_exti.c(48): error:  #20: identifier "EXTI_InitTypeDef" is undefined
..\..\User\key\bsp_exti.c(63): error:  #20: identifier "EXTI_Line13" is undefined
..\..\User\key\bsp_exti.c(64): error:  #20: identifier "EXTI_Mode_Interrupt" is undefined
..\..\User\key\bsp_exti.c(65): error:  #20: identifier "EXTI_Trigger_Falling" is undefined
..\..\User\key\bsp_exti.c(67): warning:  #223-D: function "EXTI_Init" declared implicitly

都是中断部分的提示没有定义,找不到在哪里出错,求指教!谢谢!
回复

使用道具 举报

发表于 2014-7-8 11:47:32 | 显示全部楼层
在stm32f10x_config.c文件添加包含misc.h文件的宏
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-8 11:51:29 | 显示全部楼层
随风 发表于 2014-7-8 11:47
在stm32f10x_config.c文件添加包含misc.h文件的宏

记得之前是已经添加了的,刚刚看了一下确实是没添加这个宏,以后会多注意。。。非常感谢!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-8 14:56:51 | 显示全部楼层
随风 发表于 2014-7-8 11:47
在stm32f10x_config.c文件添加包含misc.h文件的宏

你好,我想再添加一个按钮做按键中断,请问具体步骤是怎样的呢?我自己在原有的exti.c中直接添加了对PA0脚的设置,stm32f10x_it.c中也添加了按钮1对LED2的控制,但是没有反应,编译也没有出错,请问是在哪里出现错误了呢?是不是不能像LED一样在配置PC13的代码里顺便配置PA0?谢谢!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-8 15:00:15 | 显示全部楼层
随风 发表于 2014-7-8 11:47
在stm32f10x_config.c文件添加包含misc.h文件的宏

在exti.c中的代码:
static void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  
  /* Configure one bit for preemption priority */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn|EXTI0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
}

void EXTI_PC13_Config(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        EXTI_InitTypeDef EXTI_InitStructure;

        /* config the extiline(PC13) clock and AFIO clock */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA,ENABLE);
                                                                                               
        /* config the NVIC(PC13) */
        NVIC_Configuration();

        /* EXTI line gpio config(PC13) */       
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;      
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         // ÉÏÀ­ÊäÈë
  GPIO_Init(GPIOC, &GPIO_InitStructure);
        /******************×ÔÐÐÌí¼Óµ&AumlA0**********************/
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        /* EXTI line(PC13) mode config */
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);
  EXTI_InitStructure.EXTI_Line = EXTI_Line13;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //ϽµÑØÖжÏ
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
       
        /******************×ÔÐÐÌí¼Óµ&AumlA0**********************/
        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);
  EXTI_InitStructure.EXTI_Line = EXTI_Line0;
        EXTI_Init(&EXTI_InitStructure);
}
/*********************************************END OF FILE**********************/


在stm32f10x_it.c中添加的代码:
void EXTI0_IRQHandler(void)
{
                if(EXTI_GetITStatus(EXTI_Line0) !=RESET)
        {
                LED2_TOGGLE;
                EXTI_ClearITPendingBit(EXTI_Line0);
        }
}
新手请见谅!!!
回复 支持 反对

使用道具 举报

发表于 2014-7-9 09:37:40 | 显示全部楼层
PC13的中断服务函数你还没有写,仔细读一下教程,重新理解一下
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 08:33 , Processed in 0.030746 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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