#本文采用的是小破站up主keyskiing使用的模版,分享一下过程中遇到的问题【STM32入门教程-2024】第14集 如何在OLED屏幕上挥毫_哔哩哔哩_bilibili
一.驱动选择
本文采用是SSD1306驱动,不同型号选择不同驱动,可在up主自己写的波特律动LED字模生成器中获取下载。
之后把inc和src中的oled.c、font.c和.h文件复制自己的keil文件中
以下是我自己文件夹
二.文件导入
我这里专门放了一个文件夹装一些驱动文件
选择oled.c和font.c并导入
之后导入源文件路径
选择刚刚文件所在文件夹即可。之后load一下,.h文件自动导入。
三.快速理解
打开oled.c文件快速理解一遍函数作用
首先是从机地址,型号不同地址不同,SSD1306地址是0x78。页行列这里不多解释,会用即可。
显存是一个二维地址,显示屏相当于一个64*128的点阵,当所在点为1,时,我们可以理解这里被点亮了,所以我们用一个二维数组来储存他每一个点。
OLED_Send函数相当于I2C的传输,输入从机地址、数据等。一个固定用法。(理解为传输)
OLED_SendCmd是一个指令传输函数。可以理解成通信分为两个过程,第一个过程是主机发送指令(选择第几行第几列这样的指令),分为两个字节,首字节必须为零,次字节为指令。(理解为设置指令然后传输)
OLED_ShowFrame是第二个过程发送数据,如下,同样设计一个数组让他首字节是0x40表示此时我要进行发送数据(告诉从机0x40后面跟着的是数据)。所以总结0x00为发送指令设置一些参数,ox40表示数组后面的为数据。(理解为设置数据然后传输)
OLED_NewFrame是将显存(存放数据的)清空即全为零。
此时形成一个逻辑我们先用OLED_NewFrame清理内存,也可以理解为clear,之后对显存进行设置,用OLED_ShowFrame进行显示
四.测试
下面的代码很容易理解,前三个发送相关指令,设置一个数组发送数据,首字节为0x40,之后是数据(即要点亮的点阵)。
五.显示图片
我们这里可以将自己的图片导入波特律动取模助手里面,得到自己的图模模版。
这里会有一个问题,他生成的名字可能是数字开头的,但是c语言中不允许数字开头,需要重命名,点击右下角复制按钮,在font.c文件里面复制,。并在font.h文件中extern
六.显示汉字
同理在波特律动取模助手里面输入自己的想要的汉字取模,这里不过多介绍,流程和取图模一样,注意去字模时生成的模版命名在font.c中存在重复,也需要重命名,之后在.h文件extern,记得重命名之后给里面变量也改一下。
运行
失败,嘿嘿
最后一步。
在keil工具栏点击Edit-----Configuration-----在下图中选择UTF-8编码,返回运行即可