完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言:
为什么为了一个小小的OLED写这些乱七八糟的东西,还得花时间写,还要花时间看资料,直接调用代码就可以了 示例:OLED_ShowString(8,2,“Hello Word !”,16); //size:16/12 即可显示成功 引用我老师的一句话“学习,不是追求速度的,是追求质量的” 我在学习,不是在工作 OLED显示字符大小 常用的0.96寸OLED显示屏分辨率是128*64,既每行有128个像素点,每列是64个像素点 参考屏幕的数据手册,列64个像素点分为8页,每一页是8个像素点,既每一页就是一个横条 我手上的是中景园电子的0.96OLED屏幕,4脚,采用IIC通信协议 问题的产生字符的大小与OLED显示之间的关系到底是什么 在屏幕店家给的参考例程之中,给了两个字符库 库一:8x16点阵----指行为8个像素点,列为16个像素点 库二:6x8 点阵----参考上面 通常汉字使用16x16的点阵, 实际上最多只能显示4行字体,64/16 = 4 而每一行最多只能显示8个字体,128/16 = 8 这里的显示限制在于OLED屏幕自己的分辨率,也就是像素的数量(这里时128x64个像素点) (仔细观察第一行) 接下来看看字符与PCtoL2002生成字模的关系 首先,这里的长宽定义如下: 例,8x16字体指长为8,宽为16 首先介绍PCtoL2002的使用方法 首先,模式-》字符模式 然后,选项-》配置如下 注意点:红框内的点阵样式为看自己需求,而取模方向是根据你的屏幕驱动程序来选择的,可以自己修改看看不同的结果,探索他们之间的关系 输入想要取模的文字或字母-》生成字模,即可得到对应的字模数据,复制到自己的代码字符库即可 在这里我遇到过一个疑惑(菜鸟学习,大佬轻喷) 为什么都是16x16的自宽和字高,但是文字和字母做出来的数据量差了一倍? 个人理解: 实际上,这种区别在于字模软件对于英文字母的优化,英文字母相对汉字而言没有必要用16x16的区域来显示,取模软件会将英文字母优化成当前设定的字宽大小的一半,长缩小了一倍 此处的字宽设定为:16x16 对于英文字母生成后的大小:8x16 原因大致有以下几种, 美观性:减小字母的间距,紧凑 减小数据量:数据量能少一半,节省空间,也能提高传输速度 增加显示面积:更小的字宽,可以显示更多的字符 取模软件做了提示,但我并没有留意 还有一个问题, 为什么自己生成的字模数据和厂家给的代码里的不一样? 以字母“A”为例,8x16的字宽 自己生成的字模数据为: {0x00,0x00,0xC0,0x78,0x78,0xC0,0x00,0x00,0x20,0x3E,0x07,0x02,0x02,0x07,0x3C,0x20},/“A”,0/ 厂家给的字母“A”的字模数据为:{ 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,} **原因:**实际上这是因为字体而引起的,不同的字体产生的效果不一样,所生成的字模数据自然不同 我们这里选择的为:楷体,将楷体修改为宋体,两个字模的数据即可匹配,根据自己的需求设置即可 以上既是初次接触OLED显示的过程记录 随缘更新,不必关注 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:33 , Processed in 1.011072 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号