打印
[STM32F2]

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

[复制链接]
1644|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
程轩104|  楼主 | 2014-10-28 16:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
pi, IO, gp, GPIO, ni
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;        //中断
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_PuPd  =GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOG, &GPIO_InitStructure);

         //安装一个中断函数,暂时先放到这个文件里面
        NVIC_InitTypeDef  NVIC_InitStructure;
        NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;       
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
这是初始化代码。下面是清子中断。
  // Read ITs, clear pending ones
  abApi_Write[0] = CMD_GET_INT_STATUS;  // Use interrupt status command
  abApi_Write[1] = 0;           // Clear PH_CLR_PEND
  abApi_Write[2] = 0;           // Clear MODEM_CLR_PEND
  abApi_Write[3] = 0;           // Clear CHIP_CLR_PEND
// bApi_SendCommand(4,abApi_Write);    // Send command to the radio IC
  SI4438_Write(abApi_Write[0] ,3,&abApi_Write[1] );
  bApi_GetResponse(8,abApi_Write);
不能进入中断,很费解。
沙发
LOVE_ELEC| | 2014-10-29 14:00 | 只看该作者

看着楼主的程序是想用G口的GPIO14作为外部中断,但是楼主确使能的是EXTI0!这个可能就是楼主不能进中断的原因!

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
程轩104 + 1 很给力!
板凳
huangfeng33| | 2014-10-30 13:38 | 只看该作者
搬个凳子进来学习中断,与人分享,进步自己!顶楼上的!

使用特权

评论回复
地板
程轩104|  楼主 | 2014-10-31 10:46 | 只看该作者
2楼大哥神人啊,先收小弟一拜,我去看看解决解决。待会回来报道

使用特权

评论回复
5
fanxsd| | 2014-10-31 11:12 | 只看该作者
你配置的的中断号 不对吧, 应该为NVIC_InitStructure.NVIC_IRQChannel = EXTI4_15_IRQn ;

使用特权

评论回复
6
程轩104|  楼主 | 2014-10-31 11:34 | 只看该作者
fanxsd 发表于 2014-10-31 11:12
你配置的的中断号 不对吧, 应该为NVIC_InitStructure.NVIC_IRQChannel = EXTI4_15_IRQn ;

恩,改过来了,我这边是EXTI15_10_IRQn。那其他的初始化有问题吗?

使用特权

评论回复
7
程轩104|  楼主 | 2014-10-31 11:38 | 只看该作者
现在估计中断是能进了,为什么说估计,因为又出现另外一个bug,一运行就进入到void HardFault_Handler(void)这个函数里面去,看提示是错误的操作硬件,查了一下网说是数组越界或者溢出,我单步调试了一下停在了for(i=0; i<5000; i++);//延迟2ms      这个上面,这个延时是必须的,使能芯片要有一定延时。求解。该咋办?

使用特权

评论回复
8
dzyu404| | 2014-11-1 11:31 | 只看该作者
程轩104 发表于 2014-10-31 11:38
现在估计中断是能进了,为什么说估计,因为又出现另外一个bug,一运行就进入到void HardFault_Handler(void ...

没有定义中断处理函数也会报这个错误的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

39

帖子

1

粉丝