找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4331|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

沁恒CH32V103單片機(jī)芯片的oled應(yīng)用例程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
使用沁恒定制的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ī)源程序如下:
  1. /************ 沁恒 RISC-V 架構(gòu) MCU 保留例程 *****************************************************
  2. *  MCU 型號(hào)              :CH32V103c8t6
  3. *  IDE           :MounRiver Studio V1.70
  4. *  Author       :隨緣齋居士
  5. *  Created on   :2022/03/29
  6. *  Description  :i2C 接口 oled 顯示例程,適用于SSD1306驅(qū)動(dòng)的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);//測(cè)試顯示中文
  25.                 }

  26.         Delay_Ms(1000);

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

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

  34.     }
  35. }

復(fù)制代碼



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

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1048126 發(fā)表于 2022-10-18 09:37 | 只看該作者
南京沁恒的處理器穩(wěn)定
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表