小弟最近在学STM32还是个初学者,用的是open103z板子,
然后遇到中断的问题,一直都无法正确动作,想说是不是脚未配置的时候出问题,
但是LED是可以亮的,只是按下按键无法进中断函式,
Google很多资料改了很多次也不行,所以想问看看哪边出了问题,
先附上电路图
https://imgur.com/qdsI2hN
用到PF6和PF7连接的LED还有PG6的按键,
再来是我脚位配置
void gpio_Init()
{
GPIO_InitTypeDef GPIO_InitStruc;
EXTI_InitTypeDef EXTI_InitStruc;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF |
RCC_APB2Periph_GPIOG,ENABLE);
//LED Configuration
GPIO_InitStruc.GPIO_Pin=GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStruc.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStruc.GPIO_Speed=GPIO_Speed_10MHz;
GPIO_Init(GPIOF,&GPIO_InitStruc);
GPIO_SetBits(GPIOF,GPIO_Pin_6 | GPIO_Pin_7);
//Button Configuration
GPIO_InitStruc.GPIO_Pin=GPIO_Pin_6;
GPIO_InitStruc.GPIO_Mode=GPIO_Mode_IPU;
GPIO_Init(GPIOG,&GPIO_InitStruc);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOG,GPIO_PinSource6);
EXTI_InitStruc.EXTI_Line=EXTI_Line6;
EXTI_InitStruc.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStruc.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_InitStruc.EXTI_LineCmd=ENABLE;
EXTI_Init(&EXTI_InitStruc);
}
void NVIC_config()
{
NVIC_InitTypeDef NVIC_InitStruc;
NVIC_InitStruc.NVIC_IRQChannel=EXTI9_5_IRQn;
NVIC_InitStruc.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStruc.NVIC_IRQChannelSubPriority=0;
NVIC_InitStruc.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStruc);
}
再来是在stm32f10x_it.c的中断函式
extern int switchFlag; //switchFlag=0
void EXTI9_5_IRQHandler()
{
if(EXTI_GetITStatus(EXTI_Line6))
switchFlag=~switchFlag;
EXTI_ClearITPendingBit(EXTI_Line6);
}
希望大家可以指出我的问题0.0
感谢大家