标题: 求助,IIC--oled 12832取模问题 [打印本页]

作者: zhy123654    时间: 2019-9-6 21:45
标题: 求助,IIC--oled 12832取模问题
本帖最后由 zhy123654 于 2019-9-6 21:46 编辑

12832的oled不会取模
我的oled是0.91寸iic接口,设置的是页写,数据手册说ram是8页每一页128列,每一列是8个点,可是我这个12832每一列只有4个点,不知道在取模软件上怎么弄

作者: zhy123654    时间: 2019-9-7 23:49
没人理我,还是自己想办法,用幼儿园水平的c语言写了个64转32先凑和用着,等哪天大神给办法了再学习
作者: tyrl800    时间: 2019-9-8 15:10
LCD12832不是每列有32个点吗,字体每列点可以自己定
作者: zhy123654    时间: 2019-9-9 11:23
tyrl800 发表于 2019-9-8 15:10
LCD12832不是每列有32个点吗,字体每列点可以自己定

pctolcd 比如显示个“国”字,怎么搞?你有没有试过,麻烦教一下,具体点
作者: 那个谁和谁    时间: 2019-9-9 14:01
不是有专门的取模软件吗?PCtoLCD2002,在里面直接输入汉字,输出模式可以设置,很好弄的
作者: 那个谁和谁    时间: 2019-9-9 14:02
zhy123654 发表于 2019-9-9 11:23
pctolcd 比如显示个“国”字,怎么搞?你有没有试过,麻烦教一下,具体点

{0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00},
{0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x4A,0x4C,0x48,0x40,0xFF,0x00,0x00},/*"国",0*/
/* (16 X 16 , 宋体 )*/
作者: 那个谁和谁    时间: 2019-9-9 14:04
国(0)

{0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00},
{0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x4A,0x4C,0x48,0x40,0xFF,0x00,0x00},/*"国",0*/
/* (16 X 16 , 宋体 )*/


TT截图未命名1.jpg (43.41 KB, 下载次数: 75)

TT截图未命名1.jpg

作者: zhy123654    时间: 2019-9-10 12:02
那个谁和谁 发表于 2019-9-9 14:04
国(0)

{0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00},

试了,不行,我也用的一模一样软件,也不知是我是我设置的不对,我的屏是32行,分了8页,一页4个点,但一页却是一个字节,那么我一个汉字就是64个字节,这个软件出来32个字节只能显示半个字
作者: zhy123654    时间: 2019-9-10 12:06
那个谁和谁 发表于 2019-9-9 14:02
{0x00,0xFE,0x02,0x12,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x12,0x02,0xFE,0x00,0x00},
{0x00,0xFF,0x4 ...

谢谢你,我想会不会是我设置的问题,毕竞我一个人摸索,没人教,也没地方去问
作者: 599766257    时间: 2020-7-6 10:08
挖坟,OLED 128 32一个字节控制4个点,假设此字节数据为c,则c & 0x01控制第1个点,c & 0x02控制第2个点,c & 0x04控制第3个点,c & 0x08控制第4个点,这样的话取模的6 * 8点阵数据就要分2次写入2行,地位写入第1行,高位写入第2行,下面是部分代码:
6 x 8点阵:
void OLED_Show_Char(unsigned char x, unsigned char y, char c)
{
        OLED_Set_Pos(x, y);
        for(unsigned char i = 0; i < 6; i++)
        {
                unsigned char c_p = CODE6x8[c - ' '][i] & 0x0f;
                unsigned char c_c = (c_p & 0x01) << 1 | (c_p & 0x02) << 2 | (c_p & 0x04) << 3 | (c_p & 0x08) << 4;
                OLED_Write_Data(c_c);
        }
        OLED_Set_Pos(x, y + 1);
        for(unsigned char i = 0; i < 6; i++)
        {
                unsigned char c_p = (CODE6x8[c - ' '][i] & 0xf0) >> 4;
                unsigned char c_c = (c_p & 0x01) << 1 | (c_p & 0x02) << 2 | (c_p & 0x04) << 3 | (c_p & 0x08) << 4;
                OLED_Write_Data(c_c);
        }
}
8 x 16点阵:
void OLED_Show_BigChar(unsigned char x, unsigned char y, char c)
{
        OLED_Set_Pos(x, y);
        for(unsigned char i = 0; i < 8; i++)
        {
                unsigned char c_p = CODE6x8[c - ' '][i] & 0x0f;
                unsigned char c_c = (c_p & 0x01) << 1 | (c_p & 0x02) << 2 | (c_p & 0x04) << 3 | (c_p & 0x08) << 4;
                OLED_Write_Data(c_c);
        }
        OLED_Set_Pos(x, y + 1);
        for(unsigned char i = 0; i < 8; i++)
        {
                unsigned char c_p = (CODE6x8[c - ' '][i] & 0xf0) >> 4;
                unsigned char c_c = (c_p & 0x01) << 1 | (c_p & 0x02) << 2 | (c_p & 0x04) << 3 | (c_p & 0x08) << 4;
                OLED_Write_Data(c_c);
        }
        OLED_Set_Pos(x, y + 2);
        for(unsigned char i = 8; i < 16; i++)
        {
                unsigned char c_p = CODE6x8[c - ' '][i] & 0x0f;
                unsigned char c_c = (c_p & 0x01) << 1 | (c_p & 0x02) << 2 | (c_p & 0x04) << 3 | (c_p & 0x08) << 4;
                OLED_Write_Data(c_c);
        }
        OLED_Set_Pos(x, y + 3);
        for(unsigned char i = 8; i < 16; i++)
        {
                unsigned char c_p = (CODE6x8[c - ' '][i] & 0xf0) >> 4;
                unsigned char c_c = (c_p & 0x01) << 1 | (c_p & 0x02) << 2 | (c_p & 0x04) << 3 | (c_p & 0x08) << 4;
                OLED_Write_Data(c_c);
        }
}
作者: f556    时间: 2020-7-7 09:39
oled 12832我也有,没字过字,只写过图测试。你问的这个确是一个问题。
1、字模软件好象都是按8点取模,因为8bit刚好对应吧,没见过按4点取的。
2、你可以64转32成功,就算成功了,好象没有什么捷径
3、思维上来说12864写16*16汉字是上面8点,下页8点,即上半“国”写完,跳下页写下半“国”,所以12832原理与这个差不多,很4页写而,同样一个字模,0页写时0x模 & 0x0f、写1页时0x模 &0xf0,下半部分同理,读第2组字模




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1