STM32入门教程——OLED调试工具
前言
本教材基于B站江协科技课程整理,适合有C语言基础、刚接触STM32的新手。它梳理了STM32核心知识点,帮助大家把C语言知识应用到STM32开发中,更高效地开启STM32学习之旅。
目录
前言
一、调试工具概述与 OLED 优势
常见调试方法对比
OLED 显示屏特点
二、OLED 驱动模块功能与使用
驱动函数功能
使用流程
三、OLED 调试场景与扩展
典型应用场景
注意事项
四、调试方法总结
一、调试工具概述与 OLED 优势
-
常见调试方法对比
- 串口调试:通过串口将数据发送至电脑端显示,适合复杂数据与图形展示,但需依赖电脑且显示形式单一。
- 显示屏调试:直接连接 OLED 屏实时显示数据,直观且可嵌入产品,适合参数监控,但屏幕小、功能有限。
- IDE 调试模式:利用开发工具(如 Keil)的单步运行、断点设置等功能,适合代码逻辑调试。
-
OLED 显示屏特点
- 硬件特性:0.96 寸 OLED 屏采用 I²C 或 SPI 通信,4 针 / 7 针接口,支持 3.3V/5V 供电,分辨率 128×64,单色显示(白 / 蓝 / 黄蓝双色)。
- 优势:低功耗(自发光无需背光)、响应快、宽视角、体积小,适合单片机系统的实时参数显示。
二、OLED 驱动模块功能与使用
-
驱动函数功能
- 基础操作:
OLED_Init()
初始化、OLED_Clear()
清屏。 - 显示功能:
- 字符显示:
OLED_ShowChar(行, 列, 字符)
,如在第 1 行第 1 列显示'A'
。 - 字符串显示:
OLED_ShowString(行, 列, 字符串)
,支持英文与符号(如"Hello World!"
)。 - 数值显示:
- 无符号十进制:
OLED_ShowNum(行, 列, 数值, 长度)
,如显示12345
(长度 5)。 - 有符号十进制:
OLED_ShowSignedNum(行, 列, 数值)
,支持正负号(如-66
)。 - 十六进制:
OLED_ShowHexNum(行, 列, 数值)
,如显示0xAA55
。 - 二进制:
OLED_ShowBinNum(行, 列, 数值)
,如显示1010101001010101
。
- 无符号十进制:
- 字符显示:
- 基础操作:
-
使用流程
- 初始化硬件连接:将 OLED 的 SCL/SDA(I²C)或 SPI 引脚连接至单片机任意 GPIO 口。
- 调用驱动函数:在主程序中先调用
OLED_Init()
,再通过显示函数输出数据。 - 示例代码:
int main() {OLED_Init(); // 初始化OLEDOLED_ShowChar(1, 1, 'A'); // 第1行第1列显示'A'OLED_ShowString(1, 3, "Hello World!"); // 第1行第3列显示字符串OLED_ShowNum(2, 1, 12345, 5); // 第2行第1列显示无符号数12345OLED_ShowSignedNum(2, 7, -66); // 第2行第7列显示有符号数-66while(1); }
三、OLED 调试场景与扩展
-
典型应用场景
- 实时监控变量:如传感器数值、计数器值。
- 状态指示:通过字符或符号显示程序运行状态(如
"OK"
表示正常)。 - 人机交互界面:配合按键实现简易菜单系统(后续课程扩展)。
-
注意事项
- 坐标系统:屏幕分为 4 行 16 列(行范围 1-4,列范围 1-16),显示内容超出范围会自动换行。
- 驱动扩展:当前模块仅支持基础显示,后续可添加中文字库、图形绘制功能(需修改驱动代码)。
- 通信协议:驱动采用软件模拟 I²C,若需更高速度可切换至硬件 SPI 或优化时序。
四、调试方法总结
- 优先选择原则:简单参数显示用 OLED,复杂数据分析用串口,代码逻辑调试用 IDE 工具。
- 开发效率:使用预封装驱动模块可快速实现显示功能,聚焦主程序逻辑,后续深入学习通信协议与驱动原理。
通过 OLED 屏,开发者可在无电脑依赖的情况下实时观察程序运行状态,显著提升单片机调试效率,尤其适合嵌入式系统的原型开发与现场调试。