這兩天閑來無事,買了個OLED12864玩玩,商家提供了一個驅動,但不好用,自己改編了一下,重寫了80%以上的代碼,好用多了,發給大家參考一下.先發圖
IMG_0343.JPG (1.68 MB, 下載次數: 38)
下載附件
不同大小的漢字
2020-2-6 10:52 上傳
顯示不同大小的漢字,12x12行楷和24x24新魏
IMG_0344.JPG (1.72 MB, 下載次數: 55)
下載附件
ASCII字串與數字
2020-2-6 10:52 上傳
ASCII字串和10位以內的任意數字
IMG_0345.JPG (1.74 MB, 下載次數: 60)
下載附件
漢字和ASCII
2020-2-6 10:52 上傳
漢字和ASCII,漢字為16x16楷體,ASCII為6x8小號字
IMG_0346.JPG (1.75 MB, 下載次數: 48)
下載附件
位圖
2020-2-6 10:52 上傳
原驅動中的位圖,不過我是用我的通用字塊寫入程序寫入的
/****************************************************************
函數功能: 通用NxM規格的字塊或圖塊顯示函數
說 明: 用于顯示一個0~7行0~128列的字塊或圖塊
比如6x8 8x16 24x24 32x32等等,
也可顯示一個64x128的全屏圖像
入口參數: x 起始列位置,0~128
y 超始位位置,0~7
M 字體點陣行規格1~64, 6,8,16,24等等
N 字體點陣列規格1~128,8,16,24,128等等
*po 要顯示的字塊或圖塊對應代碼庫中的首地址
出口參數: 無
*****************************************************************/
void OLED_NxM_char(unsigned char x, y,N,M,unsigned char *p)
{
unsigned char i,j,page;
page= (M+5) / 8; //計算行規格占用的行(頁)數,點陣規格與顯示規格不一樣
for(j=0;j<page;j++) //行循環,例如8x16字塊占2行,循環2次.6x8占1行,循環1次
{
OLED_Set_Pos(x , y+j); //換行
for(i=0;i<N;i++) //列循環,每字每行要寫的列數
{
OLED_WrDat(p[i+N*j]); //計算每行每列數據地址,寫入顯存
}
}
}
每個函數都有很詳細的注解,很適合入門者
第一次發貼,請多包涵
附源程序:
OLCD12864.zip
(100.64 KB, 下載次數: 320)
2020-2-6 11:24 上傳
點擊文件名下載附件
OLCD12864驅動程序 下載積分: 黑幣 -5
附件發了嗎??
|