硬件
nucleo-f411RE, 中景园oled屏幕(0.96寸,七线)
驱动文件地址
stm32-ssd1306
驱动文件说明
使用的库:
H
A
L
HAL
HAL 支持的通信协议:
S
P
I
/
I
I
C
SPI/IIC
SPI/IIC 文件结构: 其中,驱动文件在
s
s
d
1306
ssd1306
ssd1306文件中
使用步骤
- 使用stm32cubemx进行初始化配置,打开对应的接口(
S
P
I
/
I
I
C
SPI/IIC
SPI/IIC),这里以
S
P
I
SPI
SPI为例:
使用的是
S
P
I
1
SPI1
SPI1,其配置如下: 其中关于
N
S
S
NSS
NSS使用软件配置,配置完之后,相当于配置完成了
D
0
,
D
1
D0,D1
D0,D1引脚,分别对应于时钟线和
M
O
S
I
MOSI
MOSI
引脚名称 | 作用 |
---|
GND | 电源地 | VCC | 电源正(3-5.5v) | D0 | SPI/IIC中的时钟管脚 | D1 | SPI/IIC中的数据管脚 | RES | 复位引脚(低电平有效) | DC | 命令/数据控制管脚 | CS | 模块选中管脚(相当于SPI中的NSS) |
处理电源,地和
S
P
I
SPI
SPI通信的时候使用的
D
0
,
D
1
D0,D1
D0,D1,还剩下三个引脚需要配置。 此次选择的引脚如下所示:
引脚名称 | stm32管脚 |
---|
D0 | PB3 | D1 | PA7 | RES | PC6 | DC | PB8 | CS | PB9 |
其中的具体配置如下: 注意其中的命名:
引脚名称 | User Label |
---|
DC | OLED_DC | CS | OLED_CS | RES | OLED_Res |
如果在这里保持这种命名规范的话,在驱动的后续使用中,就不需要进行修改源驱动文件,即和源驱动代码文件中的命名保持一致 再进行时钟配置,其中此开发板中的外部晶振为
8
M
h
z
8Mhz
8Mhz,所以配置如下: 最后在
C
o
d
e
G
e
n
e
r
a
t
o
r
Code Generator
CodeGenerator中选择此项,生成代码 2. 将驱动文件拷贝到Drivers文件夹下(不一定非要在此文件夹下,只要和后续的路径选择一直就行) 3. 将
s
s
d
1306
_
c
o
n
f
_
t
e
m
p
l
a
t
e
.
h
ssd1306\_conf\_template.h
ssd1306_conf_template.h重命名为
s
s
d
1306
_
c
o
n
f
.
h
ssd1306\_conf.h
ssd1306_conf.h 4. 将工程打开,将
s
s
d
1306
ssd1306
ssd1306加入到头文件搜索路径中
- 将对应驱动的源文件,添加入工程
- 修改
s
s
d
1306
_
c
o
n
f
.
h
ssd1306\_conf.h
ssd1306_conf.h配置文件
需要配置信息 | 配置内容 |
---|
单片机型号 | STM32F4(取消对应的注释即可) | 驱动协议 | SSD1306_USE_SPI(取消对应的注释即可) | SPI端口配置 | 将对应的宏进行定义 |
具体的配置如下:
- 配置完成,可以在工程中使用对应的接口函数
实物效果图: 工程模板下载地址
|