熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)表于 2024-11-28 15:33
|
會(huì)飛的魚KKK 發(fā)表于 2024-11-28 11:21 哈哈哈,小白一個(gè),老師上課都沒(méi)講什么直接就讓我們寫了 ![]() |
| 在第一個(gè)if里面加延時(shí),保證按一次按鍵只執(zhí)行第一個(gè)一次if |
| 按按鍵的時(shí)間和HAL_Delay(150),最好延時(shí)時(shí)間大于按鍵時(shí)間,讓按一次只進(jìn)入一次A11接地判定,還有A10一般做串口用,點(diǎn)燈有點(diǎn)大材小用了 |
|
本帖最后由 zpwgf 于 2024-11-28 10:21 編輯 HAL_GPIO_TogglePin使用這個(gè)函數(shù)就方便撒。比如: if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11) == 0) { HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_11) == 0) { HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_10); } } 沒(méi)錯(cuò)的話應(yīng)該這樣也可以。當(dāng)然,這樣不松手的話理論上會(huì)一直來(lái)回跳 |
| 判斷按鍵里面加個(gè)延時(shí)再判斷一次就實(shí)現(xiàn)你的功能了,你目前的程序因?yàn)闆](méi)有延時(shí),單片機(jī)跑太快按鍵可能會(huì)亂變燈 |
|
有問(wèn)題 沒(méi)消抖 沒(méi)松手檢測(cè) |
tianxiazone 發(fā)表于 2024-11-26 21:44 就是我這個(gè)按鍵接的地,所以按下去讀取的應(yīng)該是0,所以用的reset,這個(gè)中斷是什么意思啊,請(qǐng)教一下,我們老師上可就講了這幾個(gè)函數(shù)》 |
| 第100行 寫錯(cuò)了吧 ,這個(gè)邏輯有有點(diǎn)問(wèn)題, 按鍵可以用中斷 |
|
Powered by 單片機(jī)教程網(wǎng)