STM32Mini基于SPI接口的0.96寸OLED屏数据显示

一、实验资料准备

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值