找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4046|回复: 10
打印 上一主题 下一主题
收起左侧

求助,IIC--oled 12832取模问题

[复制链接]
跳转到指定楼层
楼主
50黑币
本帖最后由 zhy123654 于 2019-9-6 21:46 编辑

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:437615 发表于 2019-9-7 23:49 | 只看该作者
没人理我,还是自己想办法,用幼儿园水平的c语言写了个64转32先凑和用着,等哪天大神给办法了再学习
回复

使用道具 举报

板凳
ID:275826 发表于 2019-9-8 15:10 | 只看该作者
LCD12832不是每列有32个点吗,字体每列点可以自己定
回复

使用道具 举报

地板
ID:437615 发表于 2019-9-9 11:23 | 只看该作者
tyrl800 发表于 2019-9-8 15:10
LCD12832不是每列有32个点吗,字体每列点可以自己定

pctolcd 比如显示个“国”字,怎么搞?你有没有试过,麻烦教一下,具体点
回复

使用道具 举报

5#
ID:601639 发表于 2019-9-9 14:01 | 只看该作者
不是有专门的取模软件吗?PCtoLCD2002,在里面直接输入汉字,输出模式可以设置,很好弄的
回复

使用道具 举报

6#
ID:601639 发表于 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 , 宋体 )*/
回复

使用道具 举报

7#
ID:601639 发表于 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
回复

使用道具 举报

8#
ID:437615 发表于 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个字节只能显示半个字
回复

使用道具 举报

9#
ID:437615 发表于 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 ...

谢谢你,我想会不会是我设置的问题,毕竞我一个人摸索,没人教,也没地方去问
回复

使用道具 举报

10#
ID:611017 发表于 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);
        }
}
回复

使用道具 举报

11#
ID:282850 发表于 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组字模
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表