蓝桥杯stm32笔记三——OLED显示

一、OLED显示原理

        OLED,即有机发光二极管。通过有机发光二极管制成OLED显示屏,通过正确上电即可发光。OLED模块提供了4种接口:6800、8080两种并行接口方式,SPI接口方式,IIC接口方式。

(1)6800与8080的区别:

        对于内存的存储,需要数据总线和地址总线,这都是一样的。但对于存取的控制,它们则采用了不同的方式——
        8080是通过“读使能(RE)”和“写使能(WE)”两条控制线进行读写操作
   6800是通过“总使能(E)”和“读写选择(W/R)”两条控制线进行

(2)SPI与IIC的区别:

1、IIC为半双工,SPI为全双工
2、IIC有应答机制,SPI无应答机制
3、IIC通过向总线广播从机地址来寻址,SPI通过向对应从机发送使能信号寻址
4、IIC的时钟极性和时钟相位固定(空闲时SDA,SCL为高电平),SPI时钟极性和时钟相位可调

(3)驱动:

    驱动核心:驱动OLED驱动芯片SSD106。 单片机驱动IC,IC驱动屏幕。

  1. 选择驱动芯片时序(8080) 根据时序实现数据传输
  2. 初始化序列 厂家提供
  3. 实现画点函数,读点函数(选择,教程没教) 由这两个函数实现屏幕显示

二、OLED显示英文字符

代码:

oled初始化:

     OLED_Init();
	 OLED_Display_On();
	 OLED_Clear();

oled.c:

void OLED_ShowString(u8 x,u8 y,u8 *chr)	
{
	unsigned char j=0;
	while (chr[j]!='\0')
	{		OLED_ShowChar(x,y,chr[j]);
			x+=8;
		if(x>120){x=0;y+=2;}
			j++;
	}
}

三、OLED显示中文

代码:

oled.c:

void OLED_ShowCHinese(u8 x,u8 y,u8 no)
{      			    
	u8 t,adder=0;
	OLED_Set_Pos(x,y);	
    for(t=0;t<16;t++)
		{
				OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
				adder+=1;
     }	
		OLED_Set_Pos(x,y+1);	
    for(t=0;t<16;t++)
			{	
				OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
				adder+=1;
      }					
}

        显示中文还需要用到取模软件,将生成的编码粘贴到oledfont.h中。

        此次使用的是中景园电子的驱动代码,硬件是7针的OLED屏。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值