OLED实验画点函数确定页数问题

2019-07-20 17:22发布

标准例程里面的画点函数如下:
void OLED_DrawPoint(u8 x,u8 y,u8 t)
{
        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;            
}

STM32F4开发指南-库函数版本的解释为

OLED_GRAM[128][8]中的 128 代表列数( x 坐标),而 8 代表的是页, 每页又包含 8 行,
总共 64 行( y 坐标)。从高到低对应行数从小到大。比如,我们要在 x=100, y=29 这个点写入
1,则可以用这个句子实现:
OLED_GRAM[100][4]|=1<<2;
一个通用的在点( x, y)置 1 表达式为:
OLED_GRAM[x][7-y/8]|=1<<(7-y%8);
其中 x 的范围为: 0~127; y 的范围为: 0~63。


我的问题是:假如x=100,y=8,t=1,按照上述描述,则该点将被画到第6页上面去;但正确的是应该在第1页上面啊?
求解?






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。