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

F103外部中断不能执行

[复制链接]
wanyisq 提问时间:2016-5-4 09:46 /
接触32没多久,昨天写了一个外部中断的实验,怎么调试都不能执行中断,看了书上的例程,是一样的。不知道问题在哪,求助
  1. void GPIO_EXIT_Init(void)
  2. {
  3.         
  4.         GPIO_InitTypeDef GPIO_InitStructure;
  5.         EXTI_InitTypeDef EXTI_InitStructure;
  6.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE);  //PA8-KEY
  7.         
  8.                 NVIC_InitTypeDef NVIC_InitStructure;
  9.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  10.                 NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;
  11.                 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
  12.                 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
  13.                 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
  14.                 NVIC_Init(&NVIC_InitStructure);
  15.         
  16.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
  17.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_IPU;
  18.         GPIO_Init(GPIOA, &GPIO_InitStructure);        
  19.         
  20.         GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource8);
  21.         EXTI_InitStructure.EXTI_Line = EXTI_Line8;
  22.         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  23.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  24.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  25.         EXTI_Init(&EXTI_InitStructure);
  26.         
  27.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9 | GPIO_Pin_8;   //PD8、9--LED
  28.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  29.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  30.         GPIO_Init(GPIOD, &GPIO_InitStructure);

  31. }

  32. int main(void)
  33. {
  34.         
  35.         GPIO_EXIT_Init();
  36.         GPIO_SetBits(GPIOD, GPIO_Pin_8);
  37.         while(1)
  38.         {
  39.                 GPIO_SetBits(GPIOD, GPIO_Pin_8);
  40.         }
  41. }

  42. void EXIT9_5_IRQHandler(void)
  43. {
  44.         if(EXTI_GetITStatus(EXTI_Line8)!=RESET)
  45.         {
  46. //                GPIO_WriteBit(GPIOD,GPIO_Pin_8,
  47. //                        (BitAction)(1-GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_8)));
  48.                 GPIO_WriteBit(GPIOD, GPIO_Pin_9, (BitAction)((1-GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_9))));
  49.                 EXTI_ClearITPendingBit(EXTI_Line8);
  50.                
  51.         }
  52. }
复制代码


收藏 评论9 发布时间:2016-5-4 09:46

举报

9个回答
mark0668 回答时间:2016-5-4 12:48:42
没开内核中断.
wanyisq 回答时间:2016-5-4 12:54:29

什么是内核中断,怎么开启
mark0668 回答时间:2016-5-4 13:10:38
wanyisq 发表于 2016-5-4 12:54
什么是内核中断,怎么开启

不好意思,看错了.
wozaihuayu 回答时间:2016-5-4 15:51:40
怎么看的main函数中没有系统初始化?中断向量也没有设置?main函数一开始加上这两句试试

        SystemInit();          //初始化系统时钟       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
riansum 回答时间:2016-5-4 20:04:48
系统时钟,都没有写
wanyisq 回答时间:2016-5-4 21:16:39
wozaihuayu 发表于 2016-5-4 15:51
怎么看的main函数中没有系统初始化?中断向量也没有设置?main函数一开始加上这两句试试

        SystemInit();    ...

。。。。。。
时钟没设置是因为有默认的,内部时钟,
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  优先级也设置了
wanyisq 回答时间:2016-5-4 21:17:27
riansum 发表于 2016-5-4 20:04
系统时钟,都没有写

我看你比我这个新手还新手啊,这些高级点的芯片都有内部默认的时钟的
xmshao 回答时间:2016-5-4 23:15:15
STM32固件库里有现存的EXTI中断工程,看看人家怎么写的。
将流程比对下。

wanyisq 回答时间:2016-5-5 20:05:15
问题解决了  BitAction去掉就好了。。。。。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版