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