0.96寸OLED屏幕_清行

记: OLED例程里面的函数库只有清屏的函数..

对于想实现只想清行的我.

首先记录一下相关的显示原理.

OLED控制器为SSD1306,也就是说:裸屏由SSD1306驱动.

OLED模块显存
OLED本身是没有显存的,它的显存是依赖于SSD1306提供的。

SSD1306的显存总共为128 * 64bit大小,SSD1306将这些显存分为了8页。

每页包含了128个字节,总共8页,这样刚好是128*64的点阵大小。 

其中显存第二页的显示 :

x: 0~127 y:2   其中包含8个bit

 了解完基本的显存,那么就要知道他在代码对应的是什么?

在所给的例程里面会存在一个    u8 OLED_GRAM[128][8]      这个数据就是对应显存的的位置.

其中 128 为每一行的坐标x(0~127) ,8 为页数(0~7),  而这个数组的值就是具体某一页中的8位的值.

了解完这些开始构建代码.

因为根据里面的库函数,字体的大小为 12 ,16 ,24 .

所以,我们只需要每次显示都严格根据字体大小分配,就可以使用一下函数,对具体的函数进行清除.

具体步骤:

1.添加函数

在OLED.c文件中添加函数,并且在OELD.h文件中声明.


void OLED_Cls(u8 y1,u8 y2)
{	
	u8 i,j,m,n;
	i=y1/8;   //确定第一页是某一页
	j=y2/8;   //确定最后一页是某一页
	for(m=i;m<j;m++)
	{
		for(n=0;n<128;n++)  //将x(0~127)清零
				{
				 OLED_GRAM[n][m]=0;  
				}
	}
}

2.使用函数
//参数: y1:  清除的第一页
//          y2:  清除的最后一页(用第一行+字体大小确定)

最后,只能简单的解决页的清除,具体到行的清除,只有一点头绪,但好像也挺难实现的.

先就这样8,好好积累,慢慢成长!

如果有错,大佬轻点打. T.T

参考链接:https://blog.csdn.net/weixin_43872149/article/details/104712248?ops_request_misc=&request_id=&biz_id=102&utm_term=OLED%E5%B1%8F%E5%B9%95%E6%98%BE%E7%A4%BA%E5%8E%9F%E7%90%86%20&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-104712248.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187icon-default.png?t=M0H8https://blog.csdn.net/weixin_43872149/article/details/104712248?ops_request_misc=&request_id=&biz_id=102&utm_term=OLED%E5%B1%8F%E5%B9%95%E6%98%BE%E7%A4%BA%E5%8E%9F%E7%90%86%20&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-104712248.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值