|
发表于 2019-3-25 22:35:11
|
显示全部楼层
为啥你的代码这么短。我要写这么长?
//显示32x32的中文
void CN_SSD1306_Wire::ShowCN3232(unsigned char x, unsigned char y, unsigned char N)
{
unsigned char wm=0;
unsigned char i=0;
unsigned int adder=32*N;
unsigned int CN3232[32];
for(wm = 0;wm < 32;wm++)
{
CN3232[wm] = 0;
for(i = 0;i < 8;i++)
{
CN3232[wm] = CN3232[wm] + (((((unsigned int)CN16x16[adder]>>i)&1)*3)<<(2*i));
}
adder += 1;
}
IIC_SetPos(x , y);
for(wm = 0;wm < 32;wm++)
{
WriteData(*((unsigned char*)(&CN3232[wm/2])));
}
IIC_SetPos(x,y + 1);
for(wm = 0;wm < 32;wm++)
{
WriteData(*(((unsigned char*)(&CN3232[wm/2]))+1));
}
IIC_SetPos(x , y+2);
for(wm = 0;wm < 32;wm++)
{
WriteData(*(((unsigned char*)(&CN3232[wm/2+16]))));
}
IIC_SetPos(x,y + 3);
for(wm = 0;wm < 32;wm++)
{
WriteData(*(((unsigned char*)(&CN3232[wm/2+16]))+1));
}
} |
|