STM32使用OLED显示一个简单的计数器

1 简单介绍OLED

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且OLED显示屏幕可视角度大,并且能够节省电能,从2003年开始这种显示设备在MP3播放器上得到了应用。

LCD都需要背光,而OLED不需要,因为它是自发光的。这样同样的显示,OLED效果要来得好一些。以目前的技术,OLED的尺寸还难以大型化,但是分辨率确可以做到很高。

更多关于OLED的资料可以参考淘宝店“Telesky”,这个店里面有很多资料,足够使用。提供链接:

telesky关于OLED的介绍
       https://detail.tmall.com/item.htm?spm=a230r.1.14.20.28995268GQphvC&id=42062670868&ns=1&abbucket=1

这个0.96寸的OLED支持的通讯方式:

6800、8080两种并行接口方式、 4线的穿行SPI接口方式、IIC接口方式;在这里演示我先用的是SPI通讯方式。

 

2 OLED工作原理

(略)可以在网上查询一下,很方便查到。提供两个博主连接可懂:

1、https://blog.csdn.net/zn2016/article/details/79518570

2、https://blog.csdn.net/qq_38410730/article/details/80033873

3 控制程序实现

需要使用OLED提供的源文件,针对计数器需要使用两个函数:

void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size)
{         	
	u8 t,temp;
	u8 enshow=0;						   
	for(t=0;t<len;t++)
	{
		temp=(num/oled_pow(10,len-t-1))%10;
		if(enshow==0&&t<(len-1))
		{
			if(temp==0)
			{
				OLED_ShowChar(x+(size/2)*t,y,' ');
				continue;
			}else enshow=1; 
		 	 
		}
	 	OLED_ShowChar(x+(size/2)*t,y,temp+'0'); 
	}
} 


u32 oled_pow(u8 m,u8 n)
{
	u32 result=1;	 
	while(n--)result*=m;    
	return result;
}				  

针对函数OLED_ShowNum()的解释是:

x,y分别表示数字起点;len 表示数字的位数;size表示数字的大小,num表示显示的数字,取值0-4294967295。

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_ShowString()的解释是:

x,y分别表示数字起点;*chr是需要现实的字符串。

主函数:

int main(void)
 {	u8 t;
	delay_init();	    	
	NVIC_Configuration(); 
    LED_Init();			  
	OLED_Init();			
	OLED_Clear(); 
   while(1) 
	{	
	 int count=89;
	 OLED_ShowString(0 ,0, "this is a count:");
	 
	 for(;count<102;count++)
	    {
	      OLED_ShowNum(40,3,count,3,20);
		  delay_ms(10000); 
	     }
	}	  
	
}

4 OLED显示结果

(注:程序是一个简单的OLED计数器显示,OLED还有跟多功能,下面一共一个汉字取字软件,显示软件,另外还附有OLED的源文件和头文件)
        下载链接

PCtoLCD2002.zip:https://download.csdn.net/download/weixin_42023797/11979799

 

OLED驱动源文件和头文件:https://download.csdn.net/download/weixin_42023797/11979796

  • 13
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值