一、实验资料准备
1、下载工程包
链接:http://www.lcdwiki.com/zh/0.96inch_SPI_OLED_Module
进入官网后选择下图这个工程包下载。
本人后面整理了一下,汇总后的完整代码如下: 链接:https://pan.baidu.com/s/1HR37rwlKxMYk9LRh0UDWyw 提取码:1314
2、引脚接法
硬件连接图:
3、字模软件准备
官网选择如下这个文件下载
文件下载后如图:
4、了解SPI(串行外设接口)
(1)SPI的定义
SPI(Serial Peripheral Interface)就是串行外围设备接口。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。 上升沿发送、下降沿接收、高位先发送。 上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。 下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。
(2)SPI的连接方式
SS( Slave Select):从设备选择信号线,常称为片选信号线。 SCK (Serial Clock):时钟信号线,用于通讯数据同步。 MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。 MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。
(3)SPI的通讯过程
MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。
5、了解OLED屏的滚屏命令
本OLED屏的芯片类型:SSD1306 详细命令的介绍,请查找SSD1306-OLED驱动中文手册或者参考下面链接进行了解 https://wlink.blog.csdn.net/article/details/81329770
二、OLED显示姓名和学号
1、用字模软件生成字模数据
点击选项,自定义格式选择C51格式,把前缀和后缀的括号删掉。
输入姓名学号,就可以生成字模数据。
2、打开工程包代码
工程包打开路径如下: 0.96inch_SPI_OLED_Module_SSD1306_MSP096X_V1.0\1- Demo\Demo_STM32\0.96inch_OLED_Demo_STM32F103RCT6_Software_4-wire_SPI (为了区分开后面我把文件区分开了,分成三个文件放到桌面上方便使用)
3、找到目录中如下代码
4、修改代码
姓名学号字模数据:
"孙",0x00,0x20,0x7E,0x20,0x02,0x20,0x04,0x20,0x08,0x20,0x08,0xA8,0x0A,0xA4,0x0C,0xA4,
0x39,0x22,0xC9,0x22,0x0A,0x22,0x08,0x20,0x08,0x20,0x08,0x20,0x28,0xA0,0x10,0x40,/*"孙",0*/
"一",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",1*/
"宁",0x02,0x00,0x01,0x00,0x01,0x00,0x7F,0xFE,0x40,0x02,0x80,0x04,0x00,0x00,0x3F,0xF8,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,/*"宁",2*/
0x00,0x00,0x00,0x18,0x24,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x22,0x1C,0x00,0x00,/*"6",3*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00,/*"3",4*/
0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"1",5*/
0x00,0x00,0x00,0x38,0x44,0x42,0x42,0x42,0x46,0x3A,0x02,0x02,0x24,0x18,0x00,0x00,/*"9",6*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",7*/
0x00,0x00,0x00,0x7E,0x42,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x00,0x00,/*"7",8*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",9*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00,/*"3",10*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",11*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x02,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,/*"2",12*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00,/*"3",13*/
0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"1",14*/
点击oledfot.h文件,把第一步生成的字模数据复制进如下区域: 点击test.c文件,修改如下区域代码: 然后编译生成 .hex文件
5、烧录
6、显示结果
三、OLED显示温湿度
1、提取代码
温湿度显示直接使用工程包中的代码即可,本人整理代码如下: 链接:https://pan.baidu.com/s/12WcATcWTMuklZcxWxRs7Pg 提取码:1314
2、烧录
3、显示结果
四、OLED滚动显示长字符
1、提取代码
代码提取链接:https://pan.baidu.com/s/1-sOboQSv8rwwZ69j2ihgwA 提取码:1314
2、用字模软件生成字模数据
选项设置同上。
把预先设计的字符输入生成对应字模数据。
3、修改代码
找到oledfot.h和test.c这两个文件进行修改 长字符字模数据如下:
"第",0x20,0x40,0x3F,0x7E,0x48,0x90,0x85,0x08,0x3F,0xF8,0x01,0x08,0x01,0x08,0x3F,0xF8,
0x21,0x00,0x21,0x00,0x3F,0xFC,0x03,0x04,0x05,0x04,0x19,0x28,0xE1,0x10,0x01,0x00,/*"第",0*/
"一",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",1*/
"绝",0x10,0x80,0x10,0x80,0x20,0xF8,0x21,0x08,0x4A,0x10,0xF5,0xFC,0x11,0x24,0x21,0x24,
0x41,0x24,0xF9,0xFC,0x41,0x00,0x01,0x00,0x19,0x02,0xE1,0x02,0x40,0xFE,0x00,0x00,/*"绝",2*/
"情",0x10,0x40,0x10,0x40,0x17,0xFC,0x10,0x40,0x1B,0xF8,0x54,0x40,0x57,0xFE,0x50,0x00,
0x93,0xF8,0x12,0x08,0x13,0xF8,0x12,0x08,0x13,0xF8,0x12,0x08,0x12,0x28,0x12,0x10,/*"情",3*/
"木",0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,0x05,0x40,
0x09,0x20,0x11,0x10,0x21,0x08,0x41,0x04,0x81,0x02,0x01,0x00,0x01,0x00,0x01,0x00,/*"木",4*/
"小",0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x11,0x10,0x11,0x08,0x11,0x04,
0x21,0x04,0x21,0x02,0x41,0x02,0x81,0x02,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,/*"小",5*/
"小",0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x11,0x10,0x11,0x08,0x11,0x04,
0x21,0x04,0x21,0x02,0x41,0x02,0x81,0x02,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,/*"小",6*/
点击oledfot.h,在红框目标区域添加如下代码 点击test.c,修改目标区域代码
4、烧录
5、显示结果
五、个人总结
这次实验是通过OLED显示屏来把需要的字符显示出来,一开始由于对于SPL不熟悉,所以花了一些时间去了解,实验操作上不很难,只要借鉴参考别人的一些经验就能做出来了,代码的话研究清楚还是有一些难度,这个就是以后的事了。
六、参考文献
1、https://blog.csdn.net/weixin_45873781/article/details/111681474 2、https://blog.csdn.net/qq_43279579/article/details/111414037
|