玩轉STM32MP157- 使用 u8g2 驅動 OLED 12864(SSD1306)


環境

硬件環境:STM32MP157C-DK2

軟件:

u8g2

u8g2 是面向嵌入式設備的單色圖形庫,什么意思呢,如果你做些嵌入式設備,恰好是用單色顯示設備(可以是單色LCD,OLED,LED點陣屏等),用這個可就很方便了,直接使用u8g2 API來顯示字符或者圖片等,不用知道這些顯示設備的底層操作。

u8g2 github地址是https://github.com/olikraus/u8g2,還有官方文檔, 官方提供的例子 ,不過這些都是MCU的,如果要在Linux上使用呢?已經有人移植了,在github上可以找到:https://github.com/wuhanstudio/u8g2-arm-linux

在STM32MP157C-DK2上使用u8g2

下載u8g2

首先下載下來:

在目錄u8g2-arm-linux\examples下有兩個例程,一個是SPI驅動SSD1306 OLED,一個是I2C前驅動SSD1306 OLED,正好我手上有I2C接口的SSD1306 OLED模塊。

修改源碼

  • 修改makefile

分別把u8g2-arm-linux/examples\u8g2_hw_i2cu8g2-arm-linux\examples\u8g2_4wire_hw_spi目錄下的makefile中的CC賦值的語句注釋掉:

  • 修改例程

然后修改u8g2-arm-linux/examples\u8g2_hw_i2c\main.c文件,原來的程序如下圖:

把顯示的文字修改為:U8g2 on STM32MPU

編譯

首先使能SDK,然后輸入make就可以編譯。編譯完之后,在bin目錄下可以找到編譯出來的可執行文件,

把bin目錄中的u8g2_hw_i2c拷貝到STM32MPU板子上。

連接硬件並測試程序

該例子使用的I2C是i2c-0:

STM32MP157C-DK2引出的IO如下:

把顯示器連上板子,執行程序,結果如下:

顯示板子的IP地址

嘗試使用下u8g2,試着在OLED上顯示板子的IP地址,

參考:

https://blog.csdn.net/dpjcn1990/article/details/92831760#21_U8g2_26


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM