熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
機(jī)子單 發(fā)表于 2020-3-22 19:20 原來你問的這個(gè),編譯器會(huì)吧沒有賦值的變量默認(rèn)賦值為0,在你程序中如果沒有按鍵按下,則最后面一句給端口賦值時(shí)返回?cái)?shù)組成員第一個(gè),也就是數(shù)組[0],你應(yīng)該在swich中添加default:選項(xiàng)。 |
| keyvalue定義時(shí)未賦值,默認(rèn)是0。 如果按其他鍵后,應(yīng)該就非0了,除非再次按下0鍵 |
| 參與人數(shù) 1 | 黑幣 +6 | 收起 理由 |
|---|---|---|
|
| + 6 |
| 部分變量沒賦初始值造成 |
|
編譯器在編譯的時(shí)候,會(huì)把沒有給初始值的變量給默認(rèn)值0,也就是即便你沒有做初始化,它還是會(huì)顯示0,而0正好是第一個(gè)按鍵的鍵值。 簡(jiǎn)單的辦法就是在編碼表里增加一個(gè)元素,給這個(gè)元素幅值為你想要沒有按鍵按下時(shí)顯示的內(nèi)容的編碼,給變量初始化為這個(gè)元素的下標(biāo)。 |
| 參與人數(shù) 1 | 黑幣 +9 | 收起 理由 |
|---|---|---|
|
| + 9 |
機(jī)子單 發(fā)表于 2020-3-22 19:20 keyvalue默認(rèn)是0 |
lovexulu 發(fā)表于 2020-3-22 17:36 開機(jī)初始時(shí),顯示屏顯0,GPIO_KEY沒有檢測(cè)到按按鍵,程序中也沒有寫開機(jī)初始時(shí)KeyValue=0,所以是什么原因初始時(shí)顯示屏顯0? |
| GPIO_KEY=0x0f是說P1口,高4位(P1.7,P1.6,P1.5,P1.4)為0,低4位為1,GPIO_KEY=0xf0時(shí)候正好相反,直接對(duì)端口寄存器賦值使對(duì)應(yīng)端口置位。 |
Powered by 單片機(jī)教程網(wǎng)