標(biāo)題: 沁恒CH32V103單片機芯片的oled應(yīng)用例程 [打印本頁]

作者: 隨緣57    時間: 2022-3-29 19:43
標(biāo)題: 沁恒CH32V103單片機芯片的oled應(yīng)用例程
使用沁恒定制的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。

單片機源程序如下:
  1. /************ 沁恒 RISC-V 架構(gòu) MCU 保留例程 *****************************************************
  2. *  MCU 型號              :CH32V103c8t6
  3. *  IDE           :MounRiver Studio V1.70
  4. *  Author       :隨緣齋居士
  5. *  Created on   :2022/03/29
  6. *  Description  :i2C 接口 oled 顯示例程,適用于SSD1306驅(qū)動的12864及12832 oled 液晶屏
  7. *************************************************************************/

  8. #include "debug.h"
  9. #include "codeTab.h"
  10. #include  "oled_i2c.h"




  11. int main(void)
  12. {

  13.     while(1)
  14.     {
  15.         Delay_Init();
  16.         I2C_Configuration();
  17.         OLED_Init();
  18.         OLED_Fill(0xff);
  19.         Delay_Ms(1000);
  20.         OLED_Fill(0x00); //清屏,全屏熄滅。
  21.         Delay_Ms(500);

  22.         for(int i=0;i<5;i++)
  23.                 {
  24.                     OLED_ShowCN(i*16,0,i);//測試顯示中文
  25.                 }

  26.         Delay_Ms(1000);

  27.         OLED_ShowStr(32,2,"CH32V103c8t6",2); //測試顯示ASCII字符

  28.         Delay_Ms(3000);
  29.         //OLED_Fill(0xff); //全屏點亮
  30.         //Delay_Ms(500);
  31.         //OLED_OFF();//測試OLED休眠
  32.         //Delay_Ms(2000);
  33.         //OLED_ON();//測試OLED休眠后喚醒

  34.     }
  35. }

復(fù)制代碼



上圖資料下載: SSD1306-oled.rar (711.75 KB, 下載次數(shù): 35)

作者: zhangzi1314    時間: 2022-10-18 09:37
南京沁恒的處理器穩(wěn)定




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1