使用沁恒定制的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休眠后唤醒
- }
- }
复制代码
上图资料下载:
SSD1306-oled.rar
(711.75 KB, 下载次数: 33)
|