|
使用沁恒定制的MounRiver Studio,編制了采用ssd1306主控芯片的0.96吋及0.91吋o(jì)led顯示例程,可以顯示16x16點陣漢字及8x16點陣ASCII字符。SSD1306主控oled實用例程
MCU型號: CH32V103c8t6;
IDE: MounRiver Studio V1.70;
oled模參數(shù): 0.96吋12864 oled,或者0.91吋12832 oled。主控芯片SSD1306,i2C接口。
該例程所需的函數(shù)代碼由oled_i2c.h、oled_i2c.c、codeTab.h、codeTab.c提供,使用時復(fù)制到工程項目的User子目錄下即可。
編程時使用以下函數(shù):
1、OLED_Init(void),初始化函數(shù);
2、OLED_ON(void),oled喚醒函數(shù);
3、OLED_OFF(void),oled休眠函數(shù),休眠時oled電流為10微安;
4、OLED_CLS(void),清屏函數(shù);
5、OLED_Fill(unsigned char fill_Data),全屏函數(shù)。fill_Data=0xff時全屏點亮,fill_Data=0x00時全屏熄滅;
6、OLED_ShowStr(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize),ASCII字符顯示函數(shù)。x為橫坐標(biāo)點陣序列0~127,y為縱坐標(biāo)列數(shù)0~7,ch[]為ASCII字符串,TextSize=1為6x8點陣字符,TxetSize=2為8x16點陣字符。
7、OLED_ShowCN(unsigned char x, unsigned char y, unsigned char N),16x16點陣漢字顯示函數(shù)。x為橫坐標(biāo)點陣序列0~127,y為縱坐標(biāo)列數(shù)0~7,N為漢字在點陣數(shù)據(jù)表中的序號。16x16漢字點陣數(shù)據(jù)由漢字取模程序獲得,保持在codeTab.c文件中。
8、OLED_DrawBMP(unsigned char x0, unsigned char y0, unsigned char x1, unsigned y1, unsigned char BMP[]),點陣圖像顯示函數(shù)。x0圖像左上角橫坐標(biāo)0~127,y0圖像左上角縱坐標(biāo)列數(shù)0~7,x1圖像右下角橫坐標(biāo)1~128,y1圖像右下角縱坐標(biāo)列數(shù)0~7,BMP[] 圖像點陣數(shù)據(jù),保存在codeTab.c中。
使用漢字取模軟件獲得16x16漢字點陣時,字體大小選12號字,代碼模式選擇C51。
在oled_i2c.c文件的OLED_Init(void)函數(shù)中,可以選擇支持12864 oled或是12832 oled。
用于下載燒錄的SSD1306-oled.hex大小為1.6kB。
單片機(jī)源程序如下:
- /************ 沁恒 RISC-V 架構(gòu) MCU 保留例程 *****************************************************
- * MCU 型號 :CH32V103c8t6
- * IDE :MounRiver Studio V1.70
- * Author :隨緣齋居士
- * Created on :2022/03/29
- * Description :i2C 接口 oled 顯示例程,適用于SSD1306驅(qū)動的12864及12832 oled 液晶屏
- *************************************************************************/
- #include "debug.h"
- #include "codeTab.h"
- #include "oled_i2c.h"
- int main(void)
- {
- while(1)
- {
- Delay_Init();
- I2C_Configuration();
- OLED_Init();
- OLED_Fill(0xff);
- Delay_Ms(1000);
- OLED_Fill(0x00); //清屏,全屏熄滅。
- Delay_Ms(500);
- for(int i=0;i<5;i++)
- {
- OLED_ShowCN(i*16,0,i);//測試顯示中文
- }
- Delay_Ms(1000);
- OLED_ShowStr(32,2,"CH32V103c8t6",2); //測試顯示ASCII字符
- Delay_Ms(3000);
- //OLED_Fill(0xff); //全屏點亮
- //Delay_Ms(500);
- //OLED_OFF();//測試OLED休眠
- //Delay_Ms(2000);
- //OLED_ON();//測試OLED休眠后喚醒
- }
- }
復(fù)制代碼
上圖資料下載:
SSD1306-oled.rar
(711.75 KB, 下載次數(shù): 35)
2022-3-29 19:43 上傳
點擊文件名下載附件
|
評分
-
查看全部評分
|