在OLED屏上显示汉字、字符、图片
[复制链接]
本帖最后由 人民币的幻想 于 2015-4-16 09:25 编辑
最近几天在DIY MP3播放器这个东西,说来其实很简单,去年就做好了。只不过当初是通过1602液晶显示一些简单的东西,歌曲名字还有很多相关信息没法显示。言归正传,这回打算用OLED屏试试看,经实践,显示效果帮帮哒~~。
首先先说一下所用方案:MCU用的STM32F103RBT6,OLED用的SSD1306控制的,MCU和屏是通过硬件SPI通信的。具体底层实现请看我曾经发过的一篇帖子。SD卡采用硬件SPI+DMA方式驱动,底层驱动移植自振南的SD卡驱动。
字符和数字显示很简单,用的取模软件直接取得,毕竟数量不多,占用体积也不大,相对128K的ROM来说够了。我是用的PCtoLCD2002完美版取得模,点阵采样阴码-列行式-逆向-C51格式。当然还可以自己选择自己喜欢字体大小和格式,就不再多说了。显示原理是这样的:假设以8*8大小某字符为例,占用8*8=64个bits,占用64/8=8Bytes,其他格式请自己推算,列行式即先扫一列在扫下一列,扫完这一行再扫下一行(假设有的话)。至于为什么选择阴码,我用的OLED屏手册上有这样一句话 Display Mode: Passive Matrix,即共阴点阵。大家应该都用过数码管,有共阴和共阳之分,此处原理相同。逆向是低位在前高位在后,即先取低位再取高位。取模原理大致就是这样。显示是某些像素点的显示与不显示,我们把一个字符的8个字节依次取出,