[問題] STM32F103ZE的中斷

看板ASM作者 (Kaung)時間6年前 (2018/01/25 16:07), 6年前編輯推噓1(103)
留言4則, 3人參與, 6年前最新討論串1/1
小弟最近在學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 感謝大家 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.176.164 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1516867647.A.112.html ※ 編輯: j19920816 (115.82.176.164), 01/25/2018 16:15:38

01/25 16:55, 6年前 , 1F
建議用CubeMX直接生成代碼框架
01/25 16:55, 1F
問題解決了,問題是出在switchFlag這個變數,~switchFlag會變-1,但是主程式我判斷 1 ※ 編輯: j19920816 (115.82.176.164), 01/25/2018 18:01:27

01/25 19:20, 6年前 , 2F
你應該用!而不是~
01/25 19:20, 2F

01/25 19:21, 6年前 , 3F
然後 pg6雖然內部可以設定上拉 但是我在外部還是會給
01/25 19:21, 3F

02/21 16:48, 6年前 , 4F
+ "NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);"
02/21 16:48, 4F
文章代碼(AID): #1QQP0_4I (ASM)