中级会员
 
- 积分
- 210
- 金钱
- 210
- 注册时间
- 2019-7-2
- 在线时间
- 32 小时
|
10金钱
在做一个外部中断实验,端口为PB8,配置完成后给PB8,但是在进行Debug的时候,一直进不到中断里面,想请原子哥看一下究竟是什么问题。配置代码如下:- void MMA8652_INTInit(void)
- {
- NVIC_InitTypeDef NVIC_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- EXTI_InitTypeDef EXTI_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE);//Enable GPIOB clock | RCC_APB2Periph_AFIO
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
- // GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);//PB8--MMA8652INT2
-
- // Configure EXTI Line4 to generate an interrupt on falling edge
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8);//Selects PB8 as EXTI
- EXTI_InitStructure.EXTI_Line = EXTI_Line8;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
- NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel; //
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //3
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- }
复制代码- void EXTI9_5_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line8)!= RESET)
- {
- EXTI_ClearITPendingBit(EXTI_Line8);
- MMA8652_IT();
- }
- }
复制代码 配置完成后是应该进到中断函数里的,但是就是进不去,希望原子哥和大神们能够指导一下,谢谢。
|
最佳答案
查看完整内容[请看2#楼]
解决了,我是在之前同事工程上面更改的,我使用的PB8引脚在他写的函数里面又重新初始化覆盖掉了导致不灵的。
|