最近比较忙,每天5:30起床,6:30出门,7:00上班,下班回来接孩子烧饭什么的,感觉一点自己的时间都没有,周六还要加班,只能周日在家玩玩板卡了。前一篇介绍了如何使用开发环境,编译下载demo例程,后续的程序都在demo的工程基础上进行修改,先把不符合自己习惯的文件夹和用不打的文件都进行修改删除,然后再加入自己的程序。
我习惯从基本的东西开始慢慢的搞,demo的例程里有发光二极管的驱动,直接调用的库函数,还是比较容易上手的,我这次用IO口直接驱动OLED屏来试试,手上这个OLED屏是96*64点阵全彩,SPI接口的,我先使用IO口来模拟SPI。后续搞到SPI功能的时候再修改成SPI功能。
先看下OLED屏的接口信号,数据线要5根
再来看板卡的原理图,准备使用PA4~PA8这几个引脚驱动OLED屏,因为这几个引脚包含了SPI的功能,这样的话以后修改成SPI驱动OLED的话就不用改飞线了
程序里引脚定义,和SPI的功能对应起来
主程序里OLED引脚初始化,打开A端口时钟,选择推挽输出模式
模拟SPI发送一个字节数据函数
写显示数据,或者命令函数,有一个OLED的引脚电平高低来决定写的是显示数据还是命令数据
最基本的显示一个点的函数,后面的显示汉字什么的都是以这个函数为基础。这个OLED屏的驱动都是直接一个点一个点进行显示操作的,所以速度比较慢,尤其是整个屏幕清屏的时候,可以看到明显的迟钝。
OLED屏初始化和清屏函数,具体显示字符图形等函数这里就不做多的介绍了,网上有个各种例程
主程序里的显示调用函数
实际的显示效果照片