新手最近刚刚开始学OLED。照着资料给的源码看的时候在OLED屏幕定位的函数时遇上了理解问题。如下所示函数,OLED_WR_byte是向SSD1306写入一个字节的指令函数
void OLED_set_pos(unsigned char x, unsigned char y)
{
OLED_WR_byte(0xb0+y,OLED_CMD);
OLED_WR_byte(((x&0xf0)>>4)|0x10,OLED_CMD);
OLED_WR_byte((x&0x0f)|0x01,OLED_CMD);
}
看了一下SSD1306的数据手册,前两句不难理解,y指定页数,x高四位或上0x10表示指定SSD1306起始列的高四位。
那么请问在取这个低四位的时候,为何要或上0x01呢?
我看SSD1306的手册上也只对指令高四位要求是0000,并无其他要求。是为了显示上的方便吗?
还请大佬不吝解答。
|