第一節 硬件解讀
不說廢話,我們直接看藍橋杯物聯網的擴展的按鍵模塊的原理圖:
由上面的圖我們可以看出,這是一個2*3的矩陣鍵盤了,關于矩陣鍵盤的知識就不再重復了,大家都已經參加物聯網的比賽了,這些基礎知識也是廢話。但是還是要給大家回顧一下,如果按鍵B3被按下,那就是ROW1和COLUMN3同時為低電平。同理得到,如果ROW1和COLUMN3同時為低電平時,就證明按鍵B3被按下。
再來看看ROW1,ROW2,COLUMN1等等連接到STM32L017KB的那個引腳,這時我們需要切換到開發板的原理圖:
可以得到這種關系:
擴展版之按鍵 |
開發板主板 |
ROW1 |
PB6 |
ROW2 |
PB7 |
COLUMN1 |
PB1 |
COLUMN2 |
PB0 |
COLUMN3 |
PA8 |
明確了引腳的關系,基本上就可以寫代碼了。
第一節環境配置
1,在上一章介紹了OLED,我們本次的STM32CubeMX的配置將在OLED的歷程上面修改。這是第一次修改歷程,希望大家好好的學習。
2,打開比賽提供的歷程,如下圖:
3,官方沒有勾選上“Debug”。我們重新勾選中。
4,官方的下面的引腳都是沒有用到的,我們把它取消選中。
5,勾選中擴展模塊的按鍵模塊用到的引腳。需要注意的是,PB6和PB7是輸入模式,PB0,PB1是輸出模式。還要注意的是,PA8是矩陣按鍵的引腳,也是OLED的引腳,在處理矩陣鍵盤的時候,把PA8同樣配置為輸出模式。本次用的是賽點資料包的參考歷程,OLED是用的硬件IIC,區別于我們OLED的軟件IIC。【這里如果沒有看明白,請大家添加我們公眾號客服,一對一講解】如下圖:
6,時鐘樹等等配置不再重復。
第三節 編寫代碼
1,由于我們是在賽點資源包中修改的程序,大家的MDK的文件目錄應該和公子一樣。
2,聲明數組,用于OLED屏幕的顯示。
3,下圖中的代碼分別是OLED的電源使能函數,延遲函數(很重要,否則可能OLED無法顯示),OLED初始化函數,OLED清屏函數和最后兩句讓OLED顯示“KEY TEXT”的函數。
4,接下來是矩陣鍵盤的函數了。由于部分代碼是重復的,公子只注釋了一部分,以下代碼需要添加到while(1)中,用于掃描矩陣鍵盤:
5,下載器配置,編譯代碼,下載代碼不再重復。
第四節 實驗現象
實驗注意事項:
1,程序語句需要位于程序的BEGIN與END之間。
3,CN4所有撥碼開關必須選擇ON DP檔,否則無法下載程序。
4,OLED模塊與擴展版矩陣鍵盤模塊的PA8引腳沖突,解決方案:OLED配置為硬件IIC,PAB為輸出模式。
實驗現象:
LD1,LD4常亮。OLED第一行顯示“KEY TEXT”。按下矩陣鍵盤模塊,OLED第二行顯示鍵值。
宗旨:
免費的服務,永遠的開源
說明:
1.本教程免費,開源,禁止用于任何商業用途,違者必究。
2.本教程版權所屬為東莞市東城墨竹公子電子工作室,盜版必究。
3.資料下載請通過以下方式:
微信公眾號:撞上電子
CSDN:撞上電子
掘金:撞上電子
今日頭條:撞上電子
--東莞市東城墨竹公子電子工作室
--墨竹公子
--2021.12.10
-
模塊
+關注
關注
7文章
2731瀏覽量
47679
發布評論請先 登錄
相關推薦
評論