[程序源码] 发现 OLED 只需要一种 6*8 字库,就可显示 16*8 字体

[复制链接]
 楼主| panxiaoyi 发表于 2021-10-16 15:23 | 显示全部楼层 |阅读模式
发现 OLED 只需要一种 6*8 字库,就可显示 16*8 字体

请见谅,这个有标题党的嫌疑,但是,这是我在调试时不小心犯错发现的一个“秘密”

当时我用 I2C 驱动,后来我又换成了 硬件 或者 模拟 I2C 驱动,结果都是一样

我估计,这个与单片机的型号没有关系,应该是 OLED 内部的问题

  1. void IIC_WriteByte(u8 dat)      //主机写单个字节
  2. {
  3.   I2C_DR=dat;
  4.   while(!I2C_SR1_TXE);
  5. }

  6. 把上面的代码修改成下面的代码,效果就出来了
  7. 就是重复一次发送数据而已

  8. void IIC_WriteByte(u8 dat)      //主机写单个字节
  9. {
  10.   I2C_DR=dat;
  11.   while(!I2C_SR1_TXE);
  12.   
  13.   I2C_DR=dat;
  14.   while(!I2C_SR1_TXE);
  15. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| panxiaoyi 发表于 2021-10-16 15:28 | 显示全部楼层
完整的代码可以参考这里,当然,它没有“大字体”这个功能,如果把上面的方法应用进去,它就可以显示“大字体了”

https://bbs.21ic.com/icview-3168938-1-1.html
zhengfish 发表于 2021-10-16 22:01 | 显示全部楼层
title党。。。。。。。。。。。
LcwSwust 发表于 2021-10-17 08:40 | 显示全部楼层
6*8 横向复制数据应当是12*8呀
chongdongchen 发表于 2021-10-17 14:09 | 显示全部楼层
见过某产品就是这样做,多个像素点代替1个像素点,字是变大了,但只是放大镜效果,很难看
shipeng1989 发表于 2021-10-18 08:25 | 显示全部楼层
我曾经试过将8*16的字体一个像素当4个显示变成16*32,显示的锯齿会被放大但是要求不高也可以接受
trucyw 发表于 2021-10-18 09:25 | 显示全部楼层
这个看着是你在填充的时候自动把位置多写了
这个和你所谓的内部问题没有关系,我猜所有的屏幕这样操作之后,现象会是一致的
 楼主| panxiaoyi 发表于 2021-10-18 17:02 | 显示全部楼层
这个就当做娱乐看待就好了,我也想不通为什么会这样,因为WriteByte()这个函数也应用在写指令的,就是说,如果按照上面的方法,所有指令所有数据都是写两遍的
qin552011373 发表于 2021-11-4 09:13 | 显示全部楼层
看看OLED的驱动芯片的手册
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

414

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部