目录
一、OLED屏字模显示
1.字模获取
下载通用点阵字库生成工具
链接:https://xiazai.zol.com.cn/baike/470519.shtml
按如下设置
输入想要获取的文字,点击生成字模,下面会出现编码,点击保存字模
用记事本打开
2.编写代码
下载工程文件:https://github.com/Sunlight-Dazzling/LEDORoll
下载好后,在如下路径找到oledfont
,用记事本打开
找到16*16的部分,在里面添加上一步获取的编码,需要在每一个字的编码开头部分加上该字,记得用引号括起来,并加上逗号
打开工程,修改main函数的代码
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
int main(void)
{
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
OLED_Init(); //初始化OLED
OLED_Clear(0); //清屏(全黑)
OLED_WR_Byte(0x2E,OLED_CMD); //关闭滚动
OLED_WR_Byte(0x27,OLED_CMD); //水平向左或者右滚动 26/27
OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节
OLED_WR_Byte(0x00,OLED_CMD); //起始页 0
OLED_WR_Byte(0x07,OLED_CMD); //滚动时间间隔
OLED_WR_Byte(0x07,OLED_CMD); //终止页 7
OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节
OLED_WR_Byte(0xFF,OLED_CMD); //虚拟字节
TEST_MainPage();
OLED_WR_Byte(0x2F,OLED_CMD); //开启滚动
while(1)
{
}
}
修改test.c里的代码
void TEST_MainPage(void)
{
GUI_ShowCHinese(10,20,16,"通天代",1);
GUI_ShowString(4,48,"631907030408",16,1);
delay_ms(1500);
delay_ms(1500);
}
运行生成.hex文件
3.连接电路
按如下连线
// OLED模块 STM32单片机
// VCC 接 DC 5V/3.3V //OLED屏电源正
// GND 接 GND //OLED屏电源地
//=======================================液晶屏数据线接线==========================================//
//本模块默认数据总线类型为4线制SPI
// OLED模块 STM32单片机
// D1 接 PB15 //OLED屏SPI写信号
//=======================================液晶屏控制线接线==========================================//
// OLED模块 STM32单片机
// CS 接 PB11 //OLED屏片选控制信号
// RES 接 PB12 //OLED屏复位控制信号
// DC 接 PB10 //OLED屏数据/命令选择控制信号
// D0 接 PB13 //OLED屏SPI时钟信号
4.具体实现
烧录程序
效果展示
二、OLED屏显示歌词
生成字模
按照 OLED屏字模显示的过程,进行相应修改,最后效果如下
三、参考资料
STM32F103的SPI口进行OLED屏的使用_LaiYiFei25的博客-优快云博客
基于STM32的0.96寸OLED显示屏显示数据_Harriet的博客-优快云博客_基于stm32的oled显示时间