第一節(jié)硬件解讀
擴(kuò)展模塊和ADC模塊是一模一樣的,是插在主板上面的,主板的擴(kuò)展口在ADC章節(jié)講解了,我們完全可以回顧一下:
主板上擴(kuò)展板引腳的關(guān)系:
擴(kuò)展板序號(hào) | 主板引腳 |
1 | 5V |
2 | PB6 |
3 | GND |
4 | PB7 |
5 | PB1 |
6 | GND |
7 | PB0 |
8 | PA8 |
9 | VDD_NODE |
10 | PB4 |
我們來(lái)看看矩陣鍵盤(pán)的引腳的定義:
所以我們可以得到引腳關(guān)系如下:
擴(kuò)展板序號(hào) | 矩陣鍵盤(pán)模塊引腳 |
2 | ROW1 |
3 | GND |
4 | ROW2 |
5 | COLUMN1 |
6 | GND |
7 | COLUMN2 |
8 | COLUMN3 |
我們綜合一下:
擴(kuò)展板序號(hào) | 主板引腳 | 矩陣模塊引腳 |
1 | 5V | |
2 | PB6 | ROW1 |
3 | GND | GND |
4 | PB7 | ROW2 |
5 | PB1 | COLUMN1 |
6 | GND | GND |
7 | PB0 | COLUMN2 |
8 | PA8 | COLUMN3 |
9 | VDD_NODE | |
10 | PB4 |
說(shuō)完了引腳的關(guān)系,來(lái)說(shuō)說(shuō)矩陣鍵盤(pán)的原理,以藍(lán)橋杯物聯(lián)網(wǎng)的矩陣鍵盤(pán)模塊為例,先給ROW1和ROW2一個(gè)電平,注意:ROW1或者ROW2一定是只允許其中一個(gè)引腳在某一時(shí)刻為低電平,除該引腳外,其他引腳必定為高電平,因?yàn)槲覀兪峭ㄟ^(guò)低電平來(lái)判斷按鍵被按下的。然后單片機(jī)不斷讀取COLUMN1,COLUMN2和COLUMN3的引腳。如果在ROW1為低電平,ROW2為高電平的情況下,讀取COLUMN2為低電平,則代表B2被按下。
注意:在CubeMX配置和MDK代碼中,我們是先給COLUMN1,COLUMN2和COLUMN3一個(gè)電平,然后讀取ROW1和ROW2的電平。
第二節(jié) CubeMX配置
第一步:配置PA8【注意:PA8和OLED的引腳重復(fù)】,PB0,PB1為輸出模式,初始化為低電平,并配置用戶(hù)標(biāo)簽,如下圖:
第二步:配置PB6(ROW_1)和PB7(ROW_2)為輸入模式,上拉,并配置用戶(hù)標(biāo)簽,如下圖:
注意:主板上使用了矩陣鍵盤(pán)模塊,將在CubeMX中取消ADC模塊的配置,在MDK代碼中也要?jiǎng)h除,否則會(huì)報(bào)錯(cuò);另外,PA8是矩陣鍵盤(pán)的引腳,同樣也是OLED的引腳,所以,矩陣鍵盤(pán)和OLED不會(huì)同時(shí)在一個(gè)項(xiàng)目中,除非矩陣鍵盤(pán)摒棄PA8,讓PA8為OLED引腳。
第三節(jié) MDK代碼
第一步:以下是矩陣鍵盤(pán)的讀按鍵函數(shù),如下圖:
第三步:讀取按鍵鍵值,如下圖:
第四節(jié) 實(shí)驗(yàn)現(xiàn)象
注意:
1,請(qǐng)用USB線(xiàn)連接電腦與開(kāi)發(fā)板。
2,請(qǐng)選擇A開(kāi)發(fā)板。
現(xiàn)象:
1,繼電器K1和K2吸合。
2,LED燈LD5亮。
3,按下矩陣鍵盤(pán),串口(波特率9600,HEX模式)發(fā)送鍵值。
-
模塊
+關(guān)注
關(guān)注
7文章
2729瀏覽量
47616 -
adc
+關(guān)注
關(guān)注
98文章
6525瀏覽量
545239 -
矩陣
+關(guān)注
關(guān)注
0文章
423瀏覽量
34597
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論