[問題] STM32F103ZE的中斷

作者: j19920816 (Kaung)   2018-01-25 16:07:16
小弟最近在學STM32還是個初學者,用的是open103z板子,
然後遇到中斷的問題,一直都無法正確動作,想說是不是腳未配置的時候出問題,
但是LED是可以亮的,只是按下按鍵無法進中斷函式,
Google很多資料改了很多次也不行,所以想問看看哪邊出了問題,
先附上電路圖

用到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
感謝大家
作者: MasterChang (我愛ASM)   2018-01-25 16:55:00
建議用CubeMX直接生成代碼框架
作者: chuegou (chuegou)   2018-01-25 19:20:00
你應該用!而不是~然後 pg6雖然內部可以設定上拉 但是我在外部還是會給
作者: wang3166 (3166)   2018-02-21 16:48:00
+ "NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);"

Links booklink

Contact Us: admin [ a t ] ucptt.com