OLED并口显示 ssd1325芯片 帮忙解答显示问题很急!
时间:10-02
整理:3721RD
点击:
这个函数是写四字节函数,传入参数是在OLED屏中显示的数据,通过这个函数,我们写了四个字节进OLED里,
比如我们传入0xF3, 写入四个字节分别为0xFF,0xFF,0x00,0xFF, 这几个数字与0xF3有什么联系呢?一直没弄懂!
谁能解答一下?谢谢!
static void write_4_byte(uint8_t DATA)
{
uint8_t k;
uint8_t kk,kkk;
kk=DATA;
// 0xF3 1111 0011
// 0 kkk = 11 [0]= 0xFF
// 1 kkk = 11 [1] =0xFF
// 2 kkk = 00 [2] =0x00
// 3 kkk = 11 [3] = 0xFF
for(k=0;k<4;k++) // 已两位的方式写入
{
kkk=kk&0xc0;
/***可能出现四种情况,16阶色素,一个地址两个像素,一个像素对应4个位***/
switch(kkk)
{
case 0x00:
data_4byte[k]=0x00;
break;
case 0x40:
data_4byte[k]=0x0f;
break;
case 0x80:
data_4byte[k]=0xf0;
break;
case 0xc0:
data_4byte[k]=0xff;
break;
default:
break;
}
kk=kk<<2; /左移
OLED_write_data(data_4byte[k]); /* 8 column a nibble of command is a dot*/
}
}
比如我们传入0xF3, 写入四个字节分别为0xFF,0xFF,0x00,0xFF, 这几个数字与0xF3有什么联系呢?一直没弄懂!
谁能解答一下?谢谢!
static void write_4_byte(uint8_t DATA)
{
uint8_t k;
uint8_t kk,kkk;
kk=DATA;
// 0xF3 1111 0011
// 0 kkk = 11 [0]= 0xFF
// 1 kkk = 11 [1] =0xFF
// 2 kkk = 00 [2] =0x00
// 3 kkk = 11 [3] = 0xFF
for(k=0;k<4;k++) // 已两位的方式写入
{
kkk=kk&0xc0;
/***可能出现四种情况,16阶色素,一个地址两个像素,一个像素对应4个位***/
switch(kkk)
{
case 0x00:
data_4byte[k]=0x00;
break;
case 0x40:
data_4byte[k]=0x0f;
break;
case 0x80:
data_4byte[k]=0xf0;
break;
case 0xc0:
data_4byte[k]=0xff;
break;
default:
break;
}
kk=kk<<2; /左移
OLED_write_data(data_4byte[k]); /* 8 column a nibble of command is a dot*/
}
}