1.实现的功能及所需模块

  1. 驱动单色0.96英寸七针OLED 显示屏

  1. 串口调试等功能

2.板子和开发环境

本文如题采用STM32F411RET6(NUCLEO)开发板如图所示。

开发环境使用MDK(keil5)和STM32CubeMX,不了解的同学可以去百度一下。

3.STM32CubeMX配置

首先选择对应的开发板型号,然后进入图形化配置界面。

第一步是时钟配置,每个板子在不考虑功耗的情况下,初学者的配置都是使用最高频率,如图,使用外部高速晶振时钟(HSE)。

然后点上方的Clock Configuration,这里不需要太多改动,只需要按照如图所示修改,然后填写最高Mhz即可自动配置。

先驱动屏幕,这里可自己查询oled屏幕驱动原理,在STM32中可以使用SPI也可以使用IIC驱动,本文使用SPI协议方便移植屏幕驱动,配置如图。屏幕的驱动代码我直接移植了其他板子的,由于hal库特性移植很容易,自己写需要查数据手册很麻烦不便于新手使用,这里我根据屏幕的驱动代码也需要增加几个引脚并且有所修改。其中PB13~PB15为自己添加的一个GPIO_Output高速引脚

到此0.96寸oled7针屏幕在配置就完成了。

接下来是串口调试的配置,这个十分简单,只需要在左侧选择categories->USART1或者USART2(根据个人调整)然后选择Asynchronous其他不用修改。

下面放一张F411RET6的引脚图方便对照接线。

4.屏幕驱动代码

直接上驱动代码,整个工程代码我会放在文末。

  1. oled.h

  1. oled.c

整个工程打包在此,包括串口调试,屏幕驱动,DHT11温湿度模块,4*4矩阵键盘模块的驱动,可自行修改。

工程源码下载链接