[STM32F2] 进步了中断不知道哪里出了问题

[复制链接]
2009|7
 楼主| 程轩104 发表于 2014-10-28 16:47 | 显示全部楼层 |阅读模式
pi, IO, gp, GPIO, ni
  1. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;        //中断
  2.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  3.         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  4.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  5.         GPIO_InitStructure.GPIO_PuPd  =GPIO_PuPd_NOPULL;
  6.         GPIO_Init(GPIOG, &GPIO_InitStructure);

  7.          //安装一个中断函数,暂时先放到这个文件里面
  8.         NVIC_InitTypeDef  NVIC_InitStructure;
  9.         NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
  10.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;       
  11.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  12.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  13.         NVIC_Init(&NVIC_InitStructure);
这是初始化代码。下面是清子中断。
  1.   // Read ITs, clear pending ones
  2.   abApi_Write[0] = CMD_GET_INT_STATUS;  // Use interrupt status command
  3.   abApi_Write[1] = 0;           // Clear PH_CLR_PEND
  4.   abApi_Write[2] = 0;           // Clear MODEM_CLR_PEND
  5.   abApi_Write[3] = 0;           // Clear CHIP_CLR_PEND
  6. // bApi_SendCommand(4,abApi_Write);    // Send command to the radio IC
  7.   SI4438_Write(abApi_Write[0] ,3,&abApi_Write[1] );
  8.   bApi_GetResponse(8,abApi_Write);
不能进入中断,很费解。
LOVE_ELEC 发表于 2014-10-29 14:00 | 显示全部楼层
QQ截图20141029135816.png
看着楼主的程序是想用G口的GPIO14作为外部中断,但是楼主确使能的是EXTI0!这个可能就是楼主不能进中断的原因!

评分

参与人数 1威望 +1 收起 理由
程轩104 + 1 很给力!

查看全部评分

huangfeng33 发表于 2014-10-30 13:38 | 显示全部楼层
搬个凳子进来学习中断,与人分享,进步自己!顶楼上的!
 楼主| 程轩104 发表于 2014-10-31 10:46 | 显示全部楼层
2楼大哥神人啊,先收小弟一拜,我去看看解决解决。待会回来报道
fanxsd 发表于 2014-10-31 11:12 | 显示全部楼层
你配置的的中断号 不对吧, 应该为NVIC_InitStructure.NVIC_IRQChannel = EXTI4_15_IRQn ;
 楼主| 程轩104 发表于 2014-10-31 11:34 | 显示全部楼层
fanxsd 发表于 2014-10-31 11:12
你配置的的中断号 不对吧, 应该为NVIC_InitStructure.NVIC_IRQChannel = EXTI4_15_IRQn ;

恩,改过来了,我这边是EXTI15_10_IRQn。那其他的初始化有问题吗?
 楼主| 程轩104 发表于 2014-10-31 11:38 | 显示全部楼层
现在估计中断是能进了,为什么说估计,因为又出现另外一个bug,一运行就进入到void HardFault_Handler(void)这个函数里面去,看提示是错误的操作硬件,查了一下网说是数组越界或者溢出,我单步调试了一下停在了for(i=0; i<5000; i++);//延迟2ms      这个上面,这个延时是必须的,使能芯片要有一定延时。求解。该咋办?
dzyu404 发表于 2014-11-1 11:31 | 显示全部楼层
程轩104 发表于 2014-10-31 11:38
现在估计中断是能进了,为什么说估计,因为又出现另外一个bug,一运行就进入到void HardFault_Handler(void ...

没有定义中断处理函数也会报这个错误的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

39

帖子

1

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