看板 Electronics 關於我們 聯絡資訊
各位好 目前用stm32f407vet6的晶片 PA6 PA7 是 LED1 LED2 接vdd PA0/wk_up 是 kup按鍵 接3.3v PE4 PE3 是K0 K1 按鍵 接地 程式如下 while (1) { /* USER CODE END WHILE */ if(HAL_GPIO_ReadPin(kup_GPIO_Port,kup_Pin)==GPIO_PIN_RESET) { ()SET HAL_GPIO_TogglePin(GPIOA,LED1_Pin); HAL_Delay(1000); HAL_GPIO_TogglePin(GPIOA,LED2_Pin); HAL_Delay(1000); } else if(HAL_GPIO_ReadPin(k0_GPIO_Port,k0_Pin)==GPIO_PIN_RESET) { HAL_GPIO_WritePin(GPIOA,LED1_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA,LED2_Pin,GPIO_PIN_SET); } else if(HAL_GPIO_ReadPin(k1_GPIO_Port,k1_Pin)==GPIO_PIN_RESET) { HAL_GPIO_WritePin(GPIOA,LED2_Pin,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA,LED1_Pin,GPIO_PIN_SET); } /* USER CODE BEGIN 3 */ } KUP =GPIO_PIN_SET 其他兩個按鍵按了還是跑第一個 KUP =GPIO_PINRESET 就變跑else if k0的選項 按其他鍵也沒改變 想請問是哪裡出錯了 還是cubemx 的pull up pull down 設定有問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.19.208 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1718022002.A.89B.html
god145145: 為什麼用Delay 06/10 21:18
gpc92sau: 閃爍 06/10 21:43
gpc92sau: 另兩個是固定亮 06/10 21:44
yuleen123: 感覺是線路接錯 06/11 20:06
Archer55b6: 都有開pullup? 06/12 08:50
gpc92sau: 有看原理圖 應該是沒接錯 06/12 20:34
gpc92sau: kup-> pull up. k0 k1->pull down 06/12 20:35
HiJimmy: 多了一個()set?? 複製的問題?? 06/12 22:12
HiJimmy: 然後前面是kup 後面是k0 k1 這看起來很怪內,再者建議寫 06/12 22:15
HiJimmy: 個掃描按鍵副程式,現在空間都很夠,用空間換速度,多開 06/12 22:15
HiJimmy: 關計時器中斷就行 06/12 22:15
HiJimmy: 因為我記得hal read pin,原本前面應該是放portx,後面 06/12 22:17
HiJimmy: 放port pin 06/12 22:17
Archer55b6: 沒schematic隔空抓藥很難,看環境能不能有單步執行下 06/13 13:45
Archer55b6: 去debug吧? 06/13 13:45
gpc92sau: ()set 是reset換set後就執行elseif的選項了 06/14 07:13