4.2 OLED显示屏
一、硬件电路搭建

在 OLED 屏幕下方插两根线,将 OLED 屏幕的 GND 和 VCC 分别连接到电源的负极和正极。
插好供电跳线后,再将 OLED 插到 PB6 到 PB9 这四个口。此时,OLED 的 SCL 接到 PB8,SDA 接到 PB9。
二、搭建工程
新建工程,在 程序源码\STM32Project-有注释版\1-4 OLED驱动函数模块 中找到 OLED 驱动函数模块,添加到工程中的 Hardware 中。
驱动函数模块文件解析
OLED.c:主要包含初始化 I2C 通信的基本程序和 OLED 用户调用的代码。注意
在宏定义和初始化函数部分,需要根据硬件电路上 SCL 和 SDA 引脚的实际连接端口进行修改。
OLED.h:这里是外部可调用函数的声明。OLED_Font.h:存放的是 OLED 的字库数据。由于 OLED 显示屏不带字库,想要显示字符图形,需要先定义字符的点阵数据,这里就是这些字符的点阵数据,OLED.c文件的显示函数会用到这些数据,该文件不需要修改。
三、试用 LED 函数
#include "stm32f10x.h"
#include "delay.h"
#include "OLED.h"
int main(void)
{
OLED_Init();
OLED_ShowChar(1, 1, 'A'); //显示单个字符
OLED_ShowString(1, 3, "HelloWorld!"); //显示字符串
OLED_ShowNum(2, 1, 12345, 5); //显示无符号十进制数字
OLED_ShowSignedNum(2, 7, -66, 2); //显示有符号十进制数字
OLED_ShowHexNum(3, 1, 0xAA55, 4); //显示十六进制数
OLED_ShowBinNum(4, 1, 0xAA55, 16); //显示二进制数
//OLED_Clear(); //清屏
while(1)
{
}
}相关信息
- 注意计算坐标和字符串长度,不要超出屏幕。
- 显示数字时,若长度参数比数字长度长,会在前面补零;若比数字长度小,会把高位的数据切掉。
- 调用
OLED_ShowBinNum()时,由于 C 语言不能直接写二进制数,只能用十六进制代替。 OLED_Clear(),调用后 OLED 将不会显示任何东西。若只想清除部分字符,在想要清掉的地方显示空格字符即可。
四、Keil 调试模式介绍
4.1 调试模式配置
在工程选项的 Debug 中,可以对调试选项进行配置。默认选择右侧的 Use ST-Link Debugger,需要连接 ST - Link 和 STM32 ;若没有硬件,也可以选择左侧的 Use Simulator,由电脑模拟 STM32 运行。
4.2 调试模式界面与操作
进入调试模式:
连接 STM32,编译确保工程没有任何问题,然后点击放大镜图标进入调试模式。
界面介绍:
主窗口:显示 C 语言程序。
上方窗口:显示 C 语言翻译成的汇编程序,可对照查看 C 语言实际执行的操作。
左侧窗口:显示寄存器组和状态标志位等信息,对于汇编编程很重要,C 语言编程可不用管。
上方选项栏:程序运行控制,包括复位、运行、停止运行、单步运行(跳过当前行、单步运行、跳出当前函数、跳到光标指定行单步运行)。
程序运行控制操作:
单步运行:点击单步运行按钮,程序执行到下一行。
跳出函数:点击跳出函数按钮,可跳到函数外面。
运行到光标指定行:指定一行代码,点击运行到光标指定行按钮,程序运行到该位置。
设置断点:点击代码左侧深灰色区域设置断点,点击运行,程序会运行到断点停下;若无断点,运行程序不会自动停下,需点击停止按钮。
复位:点击
RST复位按钮,程序回到最开始的地方。
4.3 调试模式功能
命令窗口:可打开和关闭,用于输入命令。
反汇编窗口:可打开和关闭,显示反汇编代码。
符号窗口:可实时查看程序中所有变量的值。例如 GPIO_InitStructure 结构体的值,可在该窗口中查找,右键添加到 Watch1 窗口,就能看到结构体的值及变化。
串口显示:用于显示串口数据。
逻辑分析仪:用于捕获和分析数字信号的时间序列数据。
顶部菜单栏 - Peripherals:可查看所有的外设寄存器。运行程序时可以实时显示寄存器的变化。
注意
不能直接在调试模式下修改程序,需先退出调试模式,重新编译,再进入调试模式。
