找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2743|回复: 1
收起左侧

沁恒CH32V103单片机芯片的oled应用例程

[复制链接]
ID:678336 发表于 2022-3-29 19:43 | 显示全部楼层 |阅读模式
使用沁恒定制的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。

单片机源程序如下:
  1. /************ 沁恒 RISC-V 架构 MCU 保留例程 *****************************************************
  2. *  MCU 型号              :CH32V103c8t6
  3. *  IDE           :MounRiver Studio V1.70
  4. *  Author       :随缘斋居士
  5. *  Created on   :2022/03/29
  6. *  Description  :i2C 接口 oled 显示例程,适用于SSD1306驱动的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. }

复制代码

51hei.png

上图资料下载: SSD1306-oled.rar (711.75 KB, 下载次数: 33)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1048126 发表于 2022-10-18 09:37 | 显示全部楼层
南京沁恒的处理器稳定
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表