使用ssd1306驱动,来驱动0.96寸中景园oled屏幕
创始人
2024-04-25 12:50:36
0

硬件

nucleo-f411RE, 中景园oled屏幕(0.96寸,七线)

驱动文件地址

stm32-ssd1306
在这里插入图片描述

驱动文件说明

使用的库:HALHALHAL
支持的通信协议:SPI/IICSPI/IICSPI/IIC
文件结构:
在这里插入图片描述其中,驱动文件在ssd1306ssd1306ssd1306文件中

使用步骤

  1. 使用stm32cubemx进行初始化配置,打开对应的接口(SPI/IICSPI/IICSPI/IIC),这里以SPISPISPI为例:
    在这里插入图片描述使用的是SPI1SPI1SPI1,其配置如下:
    在这里插入图片描述
    其中关于NSSNSSNSS使用软件配置,配置完之后,相当于配置完成了D0,D1D0,D1D0,D1引脚,分别对应于时钟线和MOSIMOSIMOSI
引脚名称作用
GND电源地
VCC电源正(3-5.5v)
D0SPI/IIC中的时钟管脚
D1SPI/IIC中的数据管脚
RES复位引脚(低电平有效)
DC命令/数据控制管脚
CS模块选中管脚(相当于SPI中的NSS)

处理电源,地和SPISPISPI通信的时候使用的D0,D1D0,D1D0,D1,还剩下三个引脚需要配置。
此次选择的引脚如下所示:

引脚名称stm32管脚
D0PB3
D1PA7
RESPC6
DCPB8
CSPB9

其中的具体配置如下:
在这里插入图片描述注意其中的命名:

引脚名称User Label
DCOLED_DC
CSOLED_CS
RESOLED_Res

如果在这里保持这种命名规范的话,在驱动的后续使用中,就不需要进行修改源驱动文件,即和源驱动代码文件中的命名保持一致
在这里插入图片描述
再进行时钟配置,其中此开发板中的外部晶振为8Mhz8Mhz8Mhz,所以配置如下:
在这里插入图片描述
最后在CodeGeneratorCode GeneratorCodeGenerator中选择此项,生成代码
在这里插入图片描述
2. 将驱动文件拷贝到Drivers文件夹下(不一定非要在此文件夹下,只要和后续的路径选择一直就行)
在这里插入图片描述
3. 将ssd1306_conf_template.hssd1306\_conf\_template.hssd1306_conf_template.h重命名为ssd1306_conf.hssd1306\_conf.hssd1306_conf.h
4. 将工程打开,将ssd1306ssd1306ssd1306加入到头文件搜索路径中
在这里插入图片描述

  1. 将对应驱动的源文件,添加入工程
    在这里插入图片描述
  2. 修改ssd1306_conf.hssd1306\_conf.hssd1306_conf.h配置文件
需要配置信息配置内容
单片机型号STM32F4(取消对应的注释即可)
驱动协议SSD1306_USE_SPI(取消对应的注释即可)
SPI端口配置将对应的宏进行定义

具体的配置如下:
在这里插入图片描述

  1. 配置完成,可以在工程中使用对应的接口函数
    在这里插入图片描述

实物效果图:
在这里插入图片描述
在这里插入图片描述
工程模板下载地址

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...