本作品由安信可社區(qū)用戶
沈夜制作
01外設(shè)介紹
先來(lái)介紹下0.96寸OLED顯示屏(驅(qū)動(dòng)芯片:SSD1306 / SSD1315)
[color=rgba(0, 0, 0, 0.87)],0.96寸OLED顯示屏是一種小尺寸的有機(jī)發(fā)光二極管(OLED)顯示屏,具有許多優(yōu)點(diǎn)和特點(diǎn)。以下是對(duì)0.96寸OLED顯示屏的介紹:
- 尺寸:0.96寸指的是顯示屏的對(duì)角線尺寸,通常為0.96英寸(約24.4毫米),適合小型設(shè)備和緊湊空間。
- 分辨率:通常具有128x64像素的分辨率,可以顯示清晰的圖像和文本。
- 技術(shù):采用OLED技術(shù),每個(gè)像素都是自發(fā)光的,不需要背光,因此具有更高的對(duì)比度和更廣的視角。
- 高亮度:OLED顯示屏具有較高的亮度,即使在室外或明亮的環(huán)境下也能清晰可見(jiàn)。
- 低功耗:相比傳統(tǒng)的液晶顯示屏,OLED顯示屏具有較低的功耗,可以延長(zhǎng)電池壽命。
- 快速響應(yīng):OLED顯示屏具有快速的響應(yīng)時(shí)間,可以實(shí)現(xiàn)流暢的圖像和動(dòng)畫(huà)效果。
- 色彩鮮艷:OLED顯示屏可以呈現(xiàn)鮮艷、飽滿的顏色,使圖像更加生動(dòng)逼真。
- 視角廣:OLED顯示屏具有廣闊的視角,即使從不同的角度觀看,圖像仍然清晰可見(jiàn)。
- 薄型輕便:OLED顯示屏采用薄型設(shè)計(jì),重量輕,適合應(yīng)用于便攜式設(shè)備和可穿戴設(shè)備。
- 靈活性:某些OLED顯示屏采用柔性基板制造,具有彎曲和彎折的能力,適用于柔性顯示應(yīng)用。
- 高對(duì)比度:OLED顯示屏具有高對(duì)比度,黑色顯示非常深黑,白色顯示非常亮白,使圖像更加清晰。
- 高刷新率:OLED顯示屏具有高刷新率,可以實(shí)現(xiàn)流暢的視頻播放和動(dòng)態(tài)圖像效果。
02外設(shè)規(guī)格參數(shù)
工作電壓:3.3V
工作電流:9MA
模塊尺寸:27.3 x 27.8 MM
像素大小:128(H) x 64(V)RGB
驅(qū)動(dòng)芯片:SSD1306
03移植過(guò)程
分為資料介紹、移植至工程、引腳選擇介紹:(點(diǎn)擊文首原貼地址進(jìn)行下載)
0.96寸OLED產(chǎn)品規(guī)格書(shū).pdf
驅(qū)動(dòng)芯片SSD1306數(shù)據(jù)手冊(cè).pdf
man.c 事例代碼移植
刪除 不用的代碼。
#include "stm32f10x.h" // Device header
#include "Delay.h"
確少一個(gè) 延時(shí),功能一樣直接調(diào)用博流的庫(kù),可以 手動(dòng)替換成bflb_mtimer_delay_ms ,但是可以根據(jù)c語(yǔ)法,[color=rgba(0, 0, 0, 0.87)]在代碼中添加以下宏定義:
#define Delay_ms(ms) bflb_mtimer_delay_ms(ms)
則無(wú)需修改任何代碼。
oled.c i2c 移植
OLED引腳初始化>>OLED_GPIO_Init,
I2C發(fā)送一個(gè)字節(jié)>>OLED_I2C_SendByte
iOLED寫(xiě)命令>>OLED_WriteCommand
OLED寫(xiě)數(shù)據(jù)>>OLED_WriteData
修改方法:直接復(fù)制 sdk里面的i2c代碼即可
經(jīng)過(guò)分析。原先工程用的是軟件模擬i2c,本次使用的硬件庫(kù)的。
I2C發(fā)送一個(gè)字節(jié)>>OLED_I2C_SendByte 這個(gè)不用移植,直接刪掉。
iOLED寫(xiě)命令>>OLED_WriteCommand
OLED寫(xiě)數(shù)據(jù)>>OLED_WriteData
這里分析得出就是發(fā)送從機(jī)地址和命令。里面的函數(shù)都用不到,可以直接刪除:
OLED_I2C_Start(); I2C起始
OLED_I2C_SendByte(0x78);
OLED_I2C_Stop(); //I2C終止
04移植驗(yàn)證
這里介紹功能齊全 - 支持字符、數(shù)字、漢字、圖像及各種繪圖圖形顯示。
PS:代碼非原創(chuàng),只是移植到了Ai-M61,經(jīng)驗(yàn)證代碼無(wú)任何報(bào)錯(cuò)。
快速使用:
解壓 修改 Makefile 文件
BL_SDK_BASE ?= D:testboliubouffalo_sdk/
為自己的sdk路徑即可
#include "OLED.h"
/*OLED初始化*/
OLED_Init();
/*在(0, 0)位置顯示字符'A',字體大小為8*16點(diǎn)陣*/
OLED_ShowChar(0, 0, 'A', OLED_8X16);
/*調(diào)用OLED_Update函數(shù),將OLED顯存數(shù)組的內(nèi)容更新到OLED硬件進(jìn)行顯示*/
OLED_Update();
只需要引用一個(gè),就能方便調(diào)用了。
高級(jí)設(shè)置:
OLED.c
OLED_GPIO_Init 函 數(shù):OLED引腳初始化
只需要替換GPIO_PIN_0、GPIO_PIN_1,就可以修改自定義引腳
OLED_Data.c
注意:添加沒(méi)有的中文字庫(kù),添加圖像都在此,demo里面有詳細(xì)的調(diào)用過(guò)程。
取模教程
一:配置軟件,點(diǎn)設(shè)置然后按照如下設(shè)置。
二:生成字模。
三:安裝格式。主要是刪掉多余的,復(fù)制沒(méi)有的即可。
效果如下:
PCtoLCD2002.zip (886.22 KB)
0.96oled.zip (17.69 KB)
備注:進(jìn)入原貼下載
05常見(jiàn)問(wèn)題匯總
移植純c代碼需要改的地方并不多,甚至原封不動(dòng)的復(fù)制過(guò)來(lái)的man文件,僅僅是添加了文件頭。一些常見(jiàn)問(wèn)題匯總給大家作參考:
5.1文件找不到
打開(kāi)CMakeLists.txt
添加文件包含,格式空格 一個(gè)文件名
target_sources(app PRIVATE oled.c OLED_Data.c)
5.2 編譯器找不到路徑
修改 Makefile 文件
BL_SDK_BASE ?= D:testboliubouffalo_sdk/
也可以 直接修改為sdk的絕對(duì)路徑,這樣你項(xiàng)目的目錄 可以隨便放在任何地方。
5.3 數(shù)據(jù)類型找不到
引入c語(yǔ)言庫(kù)能解決90%
#include
#include
#include
#include
審核編輯 黃宇
-
顯示屏
+關(guān)注
關(guān)注
28文章
4421瀏覽量
73948 -
IIC
+關(guān)注
關(guān)注
11文章
293瀏覽量
38206 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
4834瀏覽量
96834
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論