找回密码
 立即注册
楼主: 电子DIY小家

32G12K128驱动OLED12864,SPI或I2C两种方式

  [复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-4-12 08:09:11 | 显示全部楼层
Avi*** 发表于 2024-4-11 21:10
冲哥 显示范围怎么改啊?
128*64 iic 我直接套用你的显示函数很方便,OLED屏显示原理我都不用学了,省了 ...

驱动芯片一样的话,显示的y轴位置改下就好啦~原来最大是64,你改成32最大就好了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2024-04-12 11:10:59

2

主题

8

回帖

98

积分

注册会员

积分
98
发表于 2024-4-12 11:48:56 | 显示全部楼层
电子DI*** 发表于 2024-4-12 08:09
驱动芯片一样的话,显示的y轴位置改下就好啦~原来最大是64,你改成32最大就好了 ...

冲哥,是oled.c 这个文件吗?没找到Y最大64在什么地方
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:73
  • 最近打卡:2025-01-12 20:58:30

0

主题

2

回帖

330

积分

中级会员

积分
330
发表于 2024-4-14 22:46:52 | 显示全部楼层
测试画斜线时会出现不正常现象,感觉斜率大了不正常,但是完全水平或垂直又是正常的。
测试时给的是直接坐标数据
OLED_BuffShowLine(4,56,124,16); //比如画这一条,就是正常的。
OLED_BuffShowLine(52,41,56,34); // 但是这一条不正常
具体现象就是OLED_BuffShowPoint(x,(unsigned char)(y1-(u16)(y1-y2)*(u16)x/(u16)(x2-x1))计算出来的y坐标是-50,
转换成unsigned char类型后是206,远超过Y轴的范围。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:165
  • 最近打卡:2025-05-01 14:31:46
已绑定手机

0

主题

85

回帖

358

积分

中级会员

积分
358
QQ
发表于 2024-4-17 08:50:01 | 显示全部楼层
{:5_332:}支持,真棒~~!
我要用AI32做个感应加热器的控制核心,加油~!!
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2024-12-31 17:49:56

0

主题

3

回帖

154

积分

注册会员

积分
154
发表于 2024-4-22 11:58:46 | 显示全部楼层
感谢楼主分享!真的很不错
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:390
  • 最近打卡:2025-05-01 17:22:41

3

主题

85

回帖

846

积分

高级会员

积分
846
发表于 2024-4-27 08:22:06 | 显示全部楼层
{:5_332:}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:392
  • 最近打卡:2025-05-01 15:00:39

24

主题

305

回帖

2556

积分

荣誉版主

积分
2556
发表于 2024-4-29 09:16:02 | 显示全部楼层
Avi*** 发表于 2024-4-11 21:10
冲哥 显示范围怎么改啊?
128*64 iic 我直接套用你的显示函数很方便,OLED屏显示原理我都不用学了,省了 ...

12864的驱动用在12832上,需要改动初始化OLED_Init里的两处指令:

第一个是找到A8h指令
        OLED_WR_Byte(0xA8, OLED_CMD);//多路复用同比率设置
        OLED_WR_Byte(0x3F, OLED_CMD);
其中0x3F表示64行,也就是12864的设置
如果是12832显示屏,就设置成0x1F

第二处是找到DAh指令
        OLED_WR_Byte(0xDA, OLED_CMD);//设置列引脚硬件配置
        OLED_WR_Byte(0x12, OLED_CMD);
其中0x12是12864的设置
如果是12832显示屏,就设置成0x02

然后就可以像12864一样正常使用了,只不过操作时的行数,从8行变成4行,其余都一样。



能体会到发现一个不理解的现象然后找原因然后要么解决掉问题要么被问题解决掉的那种快乐是我的幸运
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:207
  • 最近打卡:2025-05-01 12:22:36

1

主题

63

回帖

355

积分

中级会员

积分
355
发表于 2024-4-29 14:21:39 来自手机 | 显示全部楼层
有机会尝试一下,先插个眼
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:390
  • 最近打卡:2025-05-01 17:22:41

3

主题

85

回帖

846

积分

高级会员

积分
846
发表于 2024-4-30 10:37:45 | 显示全部楼层
{:5_332:}{:5_332:}
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:53
  • 最近打卡:2025-05-01 10:23:16
已绑定手机

1

主题

26

回帖

381

积分

中级会员

积分
381
发表于 2024-5-3 19:22:12 | 显示全部楼层
电子DI*** 发表于 2023-7-19 09:30
乱码了,把路径里的中文去掉

整型不能反显
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 04:28 , Processed in 0.150577 second(s), 122 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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