STM32F103 OLED(SSD1306) 显示实验

最近在学习STM32,顺便写一个博客作为学习笔记,这里主要记录一下我在学习过程中遇到的一些不理解的问题。下面是我在学习OLED显示实验遇到的一个不理解的函数——画点函数。代码是这样的,

void OLED_DrawPoint(u8 x,u8 y,u8 t) //画点函数 x,y为起点坐标
{
u8 pos,bx,temp=0;
if(x>127||y>63)return;//超出范围了.
pos=7-y/8;//这里主要是确定纵坐标所在的页数
bx=y%8;//这个是确定纵坐标所在页数的哪一行
temp=1<<(7-bx);
if(t)OLED_GRAM[x][pos]|=temp;
else OLED_GRAM[x][pos]&=~temp; 
}

对于这个函数一直不理解的是temp=1<<(7-y/8)这一部分,把(x=100,y=29)这个坐标带入上面的函数,发现自己计算的总是和实际的点差一个数,后来看了x,y的取值范围发现,这两个坐标的最小值都是0,所以y等于29,相当于屏幕的第30个点,x=100,相当于第101个点,所以函数是正确的。通过这个问题,获得的经验是要提前了解坐标的取值范围。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值