本作品由安信可社區(qū)用戶
沈夜制作
01外設(shè)介紹
先來介紹下0.96寸OLED顯示屏(驅(qū)動芯片:SSD1306 / SSD1315)
[color=rgba(0, 0, 0, 0.87)],0.96寸OLED顯示屏是一種小尺寸的有機(jī)發(fā)光二極管(OLED)顯示屏,具有許多優(yōu)點和特點。以下是對0.96寸OLED顯示屏的介紹:
- 尺寸:0.96寸指的是顯示屏的對角線尺寸,通常為0.96英寸(約24.4毫米),適合小型設(shè)備和緊湊空間。
- 分辨率:通常具有128x64像素的分辨率,可以顯示清晰的圖像和文本。
- 技術(shù):采用OLED技術(shù),每個像素都是自發(fā)光的,不需要背光,因此具有更高的對比度和更廣的視角。
- 高亮度:OLED顯示屏具有較高的亮度,即使在室外或明亮的環(huán)境下也能清晰可見。
- 低功耗:相比傳統(tǒng)的液晶顯示屏,OLED顯示屏具有較低的功耗,可以延長電池壽命。
- 快速響應(yīng):OLED顯示屏具有快速的響應(yīng)時間,可以實現(xiàn)流暢的圖像和動畫效果。
- 色彩鮮艷:OLED顯示屏可以呈現(xiàn)鮮艷、飽滿的顏色,使圖像更加生動逼真。
- 視角廣:OLED顯示屏具有廣闊的視角,即使從不同的角度觀看,圖像仍然清晰可見。
- 薄型輕便:OLED顯示屏采用薄型設(shè)計,重量輕,適合應(yīng)用于便攜式設(shè)備和可穿戴設(shè)備。
- 靈活性:某些OLED顯示屏采用柔性基板制造,具有彎曲和彎折的能力,適用于柔性顯示應(yīng)用。
- 高對比度:OLED顯示屏具有高對比度,黑色顯示非常深黑,白色顯示非常亮白,使圖像更加清晰。
- 高刷新率:OLED顯示屏具有高刷新率,可以實現(xiàn)流暢的視頻播放和動態(tài)圖像效果。

02外設(shè)規(guī)格參數(shù)
工作電壓:3.3V
工作電流:9MA
模塊尺寸:27.3 x 27.8 MM
像素大小:128(H) x 64(V)RGB
驅(qū)動芯片:SSD1306
通信協(xié)議:IIC
03移植過程
分為資料介紹、移植至工程、引腳選擇介紹:(點擊文首原貼地址進(jìn)行下載)
0.96寸OLED產(chǎn)品規(guī)格書.pdf
驅(qū)動芯片SSD1306數(shù)據(jù)手冊.pdf

man.c 事例代碼移植

刪除 不用的代碼。
#include "stm32f10x.h" // Device header
#include "Delay.h"
確少一個 延時,功能一樣直接調(diào)用博流的庫,可以 手動替換成bflb_mtimer_delay_ms ,但是可以根據(jù)c語法,[color=rgba(0, 0, 0, 0.87)]在代碼中添加以下宏定義:
#define Delay_ms(ms) bflb_mtimer_delay_ms(ms)
則無需修改任何代碼。
oled.c i2c 移植
OLED引腳初始化>>OLED_GPIO_Init,
I2C發(fā)送一個字節(jié)>>OLED_I2C_SendByte
iOLED寫命令>>OLED_WriteCommand
OLED寫數(shù)據(jù)>>OLED_WriteData
修改方法:直接復(fù)制 sdk里面的i2c代碼即可

經(jīng)過分析。原先工程用的是軟件模擬i2c,本次使用的硬件庫的。
I2C發(fā)送一個字節(jié)>>OLED_I2C_SendByte 這個不用移植,直接刪掉。
iOLED寫命令>>OLED_WriteCommand
OLED寫數(shù)據(jù)>>OLED_WriteData

這里分析得出就是發(fā)送從機(jī)地址和命令。里面的函數(shù)都用不到,可以直接刪除:
OLED_I2C_Start(); I2C起始
OLED_I2C_SendByte(0x78);
OLED_I2C_Stop(); //I2C終止

04移植驗證
這里介紹功能齊全 - 支持字符、數(shù)字、漢字、圖像及各種繪圖圖形顯示。
PS:代碼非原創(chuàng),只是移植到了Ai-M61,經(jīng)驗證代碼無任何報錯。

快速使用:
解壓 修改 Makefile 文件
BL_SDK_BASE ?= D:testboliubouffalo_sdk/
為自己的sdk路徑即可
#include "OLED.h"
/*OLED初始化*/
OLED_Init();
/*在(0, 0)位置顯示字符'A',字體大小為8*16點陣*/
OLED_ShowChar(0, 0, 'A', OLED_8X16);
/*調(diào)用OLED_Update函數(shù),將OLED顯存數(shù)組的內(nèi)容更新到OLED硬件進(jìn)行顯示*/
OLED_Update();

只需要引用一個,就能方便調(diào)用了。
高級設(shè)置:
OLED.c
OLED_GPIO_Init 函 數(shù):OLED引腳初始化
只需要替換GPIO_PIN_0、GPIO_PIN_1,就可以修改自定義引腳

OLED_Data.c

注意:添加沒有的中文字庫,添加圖像都在此,demo里面有詳細(xì)的調(diào)用過程。
取模教程
一:配置軟件,點設(shè)置然后按照如下設(shè)置。

二:生成字模。

三:安裝格式。主要是刪掉多余的,復(fù)制沒有的即可。


效果如下:

PCtoLCD2002.zip (886.22 KB)
0.96oled.zip (17.69 KB)
備注:進(jìn)入原貼下載
05常見問題匯總
移植純c代碼需要改的地方并不多,甚至原封不動的復(fù)制過來的man文件,僅僅是添加了文件頭。一些常見問題匯總給大家作參考:
5.1文件找不到
打開CMakeLists.txt
添加文件包含,格式空格 一個文件名
target_sources(app PRIVATE oled.c OLED_Data.c)
5.2 編譯器找不到路徑
修改 Makefile 文件
BL_SDK_BASE ?= D:testboliubouffalo_sdk/
也可以 直接修改為sdk的絕對路徑,這樣你項目的目錄 可以隨便放在任何地方。
5.3 數(shù)據(jù)類型找不到
引入c語言庫能解決90%
#include
#include
#include
#include
審核編輯 黃宇
-
顯示屏
+關(guān)注
關(guān)注
30文章
4695瀏覽量
79435 -
IIC
+關(guān)注
關(guān)注
11文章
309瀏覽量
40632 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6290瀏覽量
118064
發(fā)布評論請先 登錄
【ESP32-C61】WT9932C61-TINY開發(fā)板上手指南
【ESP32-C61】WT9932C61-TINY開發(fā)板規(guī)格書
迅為驅(qū)動開發(fā)實戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略
上線!國產(chǎn)AI語音開發(fā)板,定制你的聊天伙伴助手
基于hbirdv2-sdk的iic 0.96寸lcd調(diào)試
如何移植EtherCAT Igh--基于米爾RK3576開發(fā)板
豆包/DeepSeek/小智AI全接入!這款AI語音開發(fā)板,配網(wǎng)即用超省心!
【匠芯創(chuàng)D133CBS KunLun Pi開發(fā)板試用體驗】1、開發(fā)板開箱及介紹
【微五科技CF5010RBT60開發(fā)板試用體驗】硬件IIC點亮OLED小屏幕
【M-K1HSE開發(fā)板免費體驗】開發(fā)板硬件解析
CW32模塊使用 1.3寸單色OLED顯示屏
【CW32模塊使用】0.96寸IIC單色屏
上線!國產(chǎn)AI語音開發(fā)板,定制你的聊天伙伴助手,可直接調(diào)用DeepSeek/豆包/通義千問
能和Ai-M61模組對話了?手搓一個ChatGPT 語音助手
【外設(shè)移植】0.96寸IIC單色屏+Ai-M61開發(fā)板
評論