中级会员
 
- 积分
- 314
- 金钱
- 314
- 注册时间
- 2015-1-25
- 在线时间
- 83 小时
|
40金钱
本帖最后由 neuangel 于 2022-5-24 09:22 编辑

中断后,卡在这里,startup_stm32f10x_hd.s 卡在启动函数了
同样的程序,另一块板上没问题,完全可用
这里就是不行
这个外部中断用过多次了,怎么这次出问题了
不知道什么原因呀
/////////////////////////////////////////////////////////////////////////////////
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//复用时钟使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
// GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource1);
//
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure);
// pc7 = turnoff pc8 = repeat
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource5); //pc.6
EXTI_InitStructure.EXTI_Line=EXTI_Line5;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising; //上升沿触发
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_Init(&EXTI_InitStructure);
//9-5
NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
//中断函数
void EXTI19_5_IRQHandler(void)
{
delay_ms(20);
if(EXTI_GetITStatus(EXTI_Line5)!=RESET)
{
close_alarm = 1;
}
EXTI_ClearITPendingBit(EXTI_Line5);
}
|
最佳答案
查看完整内容[请看2#楼]
从网上找了一堆资料,终于找到问题了,卡在这里是发生了中断,但是没有对应写中断服务函数
我以为自己写了中断服务函数,结果写错了 void EXTI19_5_IRQHandler(void) 这里面多了一个 1
应该是 void EXTI9_5_IRQHandler(void)
仔细对比,9_5前面应该是误按了个1加上了,服了。。。折腾半天多
|