基於STM32之OLED選單介面框架搭建

2021-08-28 15:14:24 字數 2385 閱讀 5233

基於stm32驅動oled屏顯示**選單介面框架搭建

個人總結的一些經驗,寫的不好勿噴。

硬體要求

(1)處理器:stm32f103系列。

(2)oled屏,spi或iic介面都可以。

(3)按鍵,用於控制介面的切換。

乙個基本的選單介面最少有有乙個主界,所以所有先設計乙個主介面。

1.什麼是主介面?

/******** 這裡說的主介面是本次需要設計的主介面 ********/

主介面是電路上電程式啟動完成後螢幕顯示的第乙個介面,就是主介面。

主介面根據自己的愛好來設計,比如:

介面中的圖形和文字可自己設計,這裡我設計的就如上圖所示。

主介面設計好後,那麼根據自己的需求來新增多級介面。

我這裡就設計了**選單介面。

好,那麼對應的介面做好後,就是如何控制介面之間的切換。

/*********************************************

* 建立乙個結構體

* 存放介面標誌位

*/typedef struct

mark;

mark mark_sign;//狀態標誌位

/*********************************************

* 建立乙個列舉

* 存放介面變數

*/enum

;/*******************************************/

switch(mark_sign.inte***ce_mark)

上面這段**用來判斷是**中哪一級介面。

裡面建立了乙個結構體,通過改變結構體裡面的乙個標誌位來控制**介面之間的切換。

那麼就要用到按鍵來改變標誌位的值,這裡我採用了外部中斷來控制。

/*************左搖桿按鍵*****選單 確認按鍵**********************/

if(disable == key_rocker_left)

/************判斷當前介面為選單介面*******************/

else if(menu_inte***ce == mark_sign.inte***ce_mark)

}/************判斷當前介面為任務介面******************/

else if(task_inte***ce == mark_sign.inte***ce_mark)}}

上面這段代功能

/*

* 1,檢測當前按下的按鍵為確認鍵

* 2,檢測當前的介面

* (1)如果是主介面,則進入選單介面

* (2)如果是選單介面,則進入任務介面

* (3)如果是任務介面,則開執行被選中的任務

*/

那麼可以從主介面進入,那怎麼退出呢?

同樣這裡採用外部中斷來控制

/****************右搖桿按鍵****返回按鍵*************************/

if(disable == key_rocker_right)

/************判斷當前介面為任務介面******************/

else if(task_inte***ce == mark_sign.inte***ce_mark)

}

上面這段**的功能

/*

* 1,檢測當前按下的按鍵為返回鍵

* 2,檢測當前的介面

* (1)如果是任務介面,則停止正在執行的任務,返回到選單介面

* (2)如果是選單介面,則返回到主介面

*/

通過確認按鍵控制從主介面到選單介面到任務介面的切換。

通過返回按鍵控制從任務介面到選單介面到主介面的切換。

以上就是選單介面的內容,不管你是小白還是正在學習stm32的你,根據這套框架你一樣可以寫出霸氣的選單介面,如果你們還有更好的寫法,歡迎一起討論。

STM32基於SPI的顯示(OLED)

主函式實驗結果 總結本文使用spi 通訊的oled螢幕,晶元使用的是stm32f103zet6。oled模組整體來說比較簡單,就是加字模,調函式的過程。初學者可以好好看看裡面包含的函式,還是很有趣的。oled,即有機發光二極體。oled由於同時具備自發光,不需要光源 對比度高 厚度薄 視角廣 反應速...

stm32多級選單程式設計

定義選單結構體變數 struct menuitem void display struct menuitem menupoint,short selectitem 顯示函式 我自己定義的選單結構體變數 struct menuitem mainmenu 3 struct menuitem setmen...

STM32之串列埠

名稱 stm32之串列埠 說明 對於stm32的串列埠通訊來說,從外部看,和c51差不多。從內部看,啊。我還不了解。從使用上說,也是需要先配置usart,然後通過終端或者輪詢的方式接受或者輸出資料。由於有了韌體庫函式的幫助,stm32的串列埠配置起來比c51還要方便不少。本實驗完成的是輸入輸出重定向...