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