stm32 ssD1306 OLED驅動架構

2021-08-03 19:28:55 字數 2409 閱讀 6369

#include "oled.h"

#include "stdlib.h"

#include "oledfont.h"

#include "delay.h"

//oled的視訊記憶體

//存放格式如下.

//[0]0 1 2 3 ... 127

//[1]0 1 2 3 ... 127

//[2]0 1 2 3 ... 127

//[3]0 1 2 3 ... 127

//[4]0 1 2 3 ... 127

//[5]0 1 2 3 ... 127

//[6]0 1 2 3 ... 127

//[7]0 1 2 3 ... 127

u8 oled_gram[128][8];

//更新視訊記憶體到lcd

void oled_refresh_gram(void)

}#if oled_mode==1

//8080並口

//向ssd1306寫入乙個位元組。

//dat:要寫入的資料/命令

//cmd:資料/命令標誌 0,表示命令;1,表示資料;

void oled_wr_byte(u8 dat,u8 cmd)

#else

//向ssd1306寫入乙個位元組。

//dat:要寫入的資料/命令

//cmd:資料/命令標誌 0,表示命令;1,表示資料;

void oled_wr_byte(u8 dat,u8 cmd)

oled_cs=1;

oled_rs=1;

} #endif

//開啟oled顯示

void oled_display_on(void)

//關閉oled顯示

void oled_display_off(void)

//清屏函式,清完屏,整個螢幕是黑色的!和沒點亮一樣!!!

void oled_clear(void)

//畫點

//x:0~127

//y:0~63

//t:1 填充 0,清空

void oled_drawpoint(u8 x,u8 y,u8 mode)

//x1,y1,x2,y2 填充區域的對角座標

//確保x1<=x2;y1<=y2 0<=x1<=127 0<=y1<=63

//dot:0,清空;1,填充

void oled_fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 mode)

oled_refresh_gram();//更新顯示

}//在指定位置顯示乙個字元,包括部分字元

//x:0~127

//y:0~63

//mode:0,反白顯示;1,正常顯示

//size:選擇字型 12/16/24

void oled_showchar(u8 x,u8 y,u8 chr,u8 size,u8 mode)

}

}

}//m^n函式

u32 mypow(u8 m,u8 n)

//顯示2個數字

//x,y :起點座標

//len :數字的位數

//size:字型大小

//mode:模式 0,填充模式;1,疊加模式

//num:數值(0~4294967295);

void oled_shownum(u8 x,u8 y,u32 num,u8 len,u8 size)

else enshow=1; //第乙個temp為最高位數,如果為0則不顯示,enshow為1,防止後面個位數的數字為零也不顯示,

//個位的數字為零應該顯示0

}oled_showchar(x+(size/2)*t,y,temp+'0',size,1);

}} //顯示字串

//x,y:起點座標

//size:字型大小

//*p:字串起始位址

void oled_showstring(u8 x,u8 y,const

u8 *p,u8 size)

//if(y>(64-size))

oled_showchar(x,y,*p,size,1); //*p指向的是字串的第乙個字元

x+=size/2;

p++;

} }

//初始化ssd1306

void oled_init(void)

STM32基於SPI的顯示(OLED)

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

STM32模擬IIC驅動OLED屏 原理 原始碼

處理器和晶元間的通訊可以形象的比喻成兩個人講話 1 你說的別人得能聽懂 雙方約定訊號的協議。2 你的語速別人得能接受 雙方滿足時序要求。一 iic匯流排的訊號型別 1 開始訊號 處理器讓scl時鐘保持高電平,然後讓sda資料訊號由高變低就表示乙個開始訊號。同時iic匯流排上的裝置檢測到這個開始訊號它...

戰艦stm32 正點原子 OLED的中文顯示

問題描述 學習完正點原子的oled顯示實驗,很多人會發現只能使螢幕顯示英文,即使顯示中文也只能是2n n畫素,或是亂碼。本文將向您介紹如何解決這個問題。開發工具 正點原子戰艦開發板v3 keil 5 pctolcd2002完美版 解決方法 1 開啟 pctolcd2002完美版 軟體,開啟 選項 面...