找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1903|回复: 3
收起左侧

请教大家一个关于OLED坐标设置的C语言程序问题

[复制链接]
ID:691676 发表于 2020-4-21 16:46 | 显示全部楼层 |阅读模式
如题所示的这个程序,显示页数的可以看懂,但下面x的就有点看不懂了,如果取列数的高四位然后右移四位再或0x10结果就是0x1f,查了手册显示是起始列的高位最后一个数,然后取低位地址的高四位。正好是低位地址的最后一位。void OledSetPos(uchar x, uchar y)
{         
        OledWriteByte(0xb0+y,OLED_CMD);    //设置第几页
        OledWriteByte(((x&0xf0)>>4)|0x10,OLED_CMD);
        OledWriteByte((x&0x0f),OLED_CMD);

回复

使用道具 举报

ID:282850 发表于 2020-4-21 18:22 | 显示全部楼层
x实际上是列了,大部分人更喜欢x----row行,y-----col列。列一般128或132列,必须8位才够用,所以分高4位、低4位。分两次指令才能传完。(x&0xf0)>>4)|0x10取高4位并在前补1。
回复

使用道具 举报

ID:691676 发表于 2020-4-22 15:46 | 显示全部楼层
f556 发表于 2020-4-21 18:22
x实际上是列了,大部分人更喜欢x----row行,y-----col列。列一般128或132列,必须8位才够用,所以分高4位、 ...

不太明白为什么要补1呢
回复

使用道具 举报

ID:284050 发表于 2021-8-27 23:57 | 显示全部楼层
f556 发表于 2020-4-21 18:22
x实际上是列了,大部分人更喜欢x----row行,y-----col列。列一般128或132列,必须8位才够用,所以分高4位、 ...

不太明白为什么要补1呢
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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