OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8368|回复: 12

OLED更新GRAM函数 从0-128的列地址写入字节数据,写完一个字节列 地址会自己增加一个字节?

[复制链接]

14

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2016-3-21
在线时间
63 小时
发表于 2016-7-18 23:50:37 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 金先生 于 2016-7-19 01:39 编辑

[mw_shl_code=cpp,true]//更新显存到 LCD
void OLED_Refresh_Gram(void)
{
u8 i,n;
for(i=0;i<8;i++)
{
OLED_WR_Byte (0xb0+i,OLED_CMD); //设置页地址( 0~7)
OLED_WR_Byte (0x00,OLED_CMD); //设置显示位置—列低地址
OLED_WR_Byte (0x10,OLED_CMD); //设置显示位置—列高地址
for(n=0;n<128;n++)OLED_WR_Byte(OLED_GRAM[n],OLED_DATA);
}
}[/mw_shl_code]

问题:从0-128的列地址写入字节数据,写完一个字节列  地址会自己增加一个字节?还是?

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-7-18 23:50:38 | 显示全部楼层
回复

使用道具 举报

14

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2016-3-21
在线时间
63 小时
 楼主| 发表于 2016-7-19 10:11:38 | 显示全部楼层
帮顶。。。。。。。。。。。。。。
回复

使用道具 举报

14

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2016-3-21
在线时间
63 小时
 楼主| 发表于 2016-7-19 14:46:03 | 显示全部楼层
@@正点原子
回复

使用道具 举报

5

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2016-4-24
在线时间
38 小时
发表于 2016-8-20 23:05:31 | 显示全部楼层
本帖最后由 cyg 于 2016-8-20 23:07 编辑

//OLED的显存
//存放格式如下.
//[0]0 1 2 3 ... 127        
//[1]0 1 2 3 ... 127        
//[2]0 1 2 3 ... 127        
//[3]0 1 2 3 ... 127        
//[4]0 1 2 3 ... 127        
//[5]0 1 2 3 ... 127        
//[6]0 1 2 3 ... 127        
//[7]0 1 2 3 ... 127                    
u8 OLED_GRAM[128][8];        


这里为什么不定义成u8 OLED_GRAM[8][128];
原子哥那么定义好像把程序搞的晦涩难懂@正点原子         
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-1-17
在线时间
18 小时
发表于 2016-8-22 17:40:15 | 显示全部楼层
顶5楼,求解@正点原子
回复

使用道具 举报

6

主题

110

帖子

0

精华

高级会员

Rank: 4

积分
553
金钱
553
注册时间
2014-10-23
在线时间
195 小时
发表于 2016-8-22 23:38:24 | 显示全部楼层
1612103064 发表于 2016-8-22 17:40
顶5楼,求解@正点原子

我当时理解的时候,用excel列了个表格,应该可以帮助理解。仅供参考,有错请指出,相互学习。

OLED地址.rar

8.3 KB, 下载次数: 580

回复

使用道具 举报

3

主题

144

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7344
金钱
7344
注册时间
2016-2-6
在线时间
1863 小时
发表于 2016-8-22 23:44:13 | 显示全部楼层
如果不从新定位,写数据就是一直递增的,知道数据寄存器结尾。
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2016-1-17
在线时间
18 小时
发表于 2016-8-23 21:49:47 | 显示全部楼层
本帖最后由 1612103064 于 2016-8-23 22:05 编辑
卡塔之魂 发表于 2016-8-22 23:38
我当时理解的时候,用excel列了个表格,应该可以帮助理解。仅供参考,有错请指出,相互学习。

谢谢哦,这个page和OLED的行数是倒序排列的。
但是还是不能解决为什么不将OLED_GRAM定义为OLED_GRAM[8][128]好理解啊?
128*64的OLED分页应该如附件所示:

OLED地址16_08_23.rar

13.23 KB, 下载次数: 413

回复

使用道具 举报

6

主题

110

帖子

0

精华

高级会员

Rank: 4

积分
553
金钱
553
注册时间
2014-10-23
在线时间
195 小时
发表于 2016-8-24 08:29:13 | 显示全部楼层
1612103064 发表于 2016-8-23 21:49
谢谢哦,这个page和OLED的行数是倒序排列的。
但是还是不能解决为什么不将OLED_GRAM定义为OLED_GRAM[8][ ...

其实不用纠结这个,x坐标,y坐标都是自己定的,只要算法能实现,怎么样建数组都行。这样建数组:u8 OLED_GRAM[128][8];可以理解为原子例程的一种显示方法,你自己也可以弄另外一种。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-5-13
在线时间
8 小时
发表于 2020-4-14 11:49:14 | 显示全部楼层
如果是64*128的竖屏0.96吋的OLED,地址该如何确定呢?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2020-6-28
在线时间
14 小时
发表于 2020-6-28 06:55:26 来自手机 | 显示全部楼层
卡塔之魂 发表于 2016-8-22 23:38
我当时理解的时候,用excel列了个表格,应该可以帮助理解。仅供参考,有错请指出,相互学习。

你这还是64行128列呀,写成数组应该是gram[64][128]
跟数组的排列不对应
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-3-5
在线时间
11 小时
发表于 2020-8-8 12:28:08 | 显示全部楼层
卡塔之魂 发表于 2016-8-22 23:38
我当时理解的时候,用excel列了个表格,应该可以帮助理解。仅供参考,有错请指出,相互学习。

膜拜,谢谢大佬
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 19:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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