江协科技STM32学习笔记(第03章 OLED)

第03章 OLED

3.1 OLED调试工具

3.1.1 调试方式

(1)串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息.。

相当于把电脑的屏幕挂载到单片机上,方便单片机显示调试信息。

(2)显示屏调试:直接将显示屏连接到单片机,将调试信息打印在显示屏上

(3)Keil调试模式:借助Keil软件的调试模式,可使用单步运行、设置断点、查看寄存器及变量等功能。

3.1.2 OLED简介

OLED(Organic Light Emitting Diode):有机发光二极管

OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点

0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块

供电:3~5.5V,通信协议:I2C/SPI,分辨率:128*64

3.1.3 OLED硬件电路

SCL和SDA是I2C的通信引脚,需要接在单片机I2C通信引脚上,本教程提供的函数模块是用GPIO口模拟的I2C通信,所以这两个端口可以接在任意的GPIO口上。

除VCC和GND外,剩下的引脚是SPI通信的引脚, 如果是GPIO口模拟的通信协议,那也是接在任意的GPIO口上就行了。

3.1.4 本教程OLED驱动函数

函数

作用

OLED_Init();

初始化

OLED_Clear();

清屏

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);

显示二进制数字

3.2 OLED显示屏驱动模块使用 

3.2.1 硬件电路

VCC和GND需要接电源的正极和 负极,所以在屏幕背面接了两根线为OLED提供电源,当然也接上了STM32的PB6和PB7引脚,不过没关系,不初始化这两个引脚就可以了。STM32的引脚上电后,如果不初始化,默认是浮空输入的模式,在这个模式下,引脚不会输出电平,所以不会有什么影响。当然也可以不接这两根条线,直接用程序给PB6输出低电平,PB7输出高电平,用GPIO口直接给OLED供电也没问题,因为这个OLED功率很小,所以也是可以驱动的,不过用GPIO口供电不是很规范,做实际项目最好还是用电源供电。

3.2.2 软件部分

复制《按键控制LED》工程文件夹,改名为《OLED显示屏》。

(1)将OLED显示屏驱动函数添加到工程中。

(2)main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"                      // 调用延时头文件
#include "OLED.h"


uint8_t KeyNum;

int main(void)
{
	OLED_Init();                                 // 初始化OLED屏幕
	OLED_ShowChar(1,1,'A');                      // 在1行1列显示字符A
	OLED_ShowString(1,3,"HelloWOrld!");          // 在1行3列显示字符串
	OLED_ShowNum(2,1,12345,5);                   // 在2行1列显示12345这个数字,长度为5,如果最后一个参数比数字长度长,会在前面补0,比数字长度小,会把高位数字切掉
	OLED_ShowSignedNum(2,7,12345,5);             // 显示有符号十进制数字
//	OLED_ShowSignedNum(2,7,-66,2);               // 显示有符号十进制数字
	OLED_ShowHexNum(3,1,0xAA55,4);               // 显示16进制数 
	OLED_ShowBinNum(4,1,0xAA55,16);              // 显示二进制数,C语言不支持直接写二进制数
	Delay_s(2);
	OLED_Clear();                                // 清屏
	while(1)
	{	
                     
	}
}

 3.3 Keil的调试模式

以《LED闪烁》为例。

默认使用右边这一项,在硬件上在线仿真, 需要把STLINK和STM32都连接好。如果不想连接硬件,也可以选择左边的使用仿真器这个选项,这样就是电脑模拟STM32的运行了。使用在硬件上在线仿真测试。

首先编译一下确保代码没有问题。

如果想看结构体值得变化: 

查看外设寄存器

如果要修改程序,是不能直接在调试模式下修改的,需要先退出调试模式,重新编译,再进入调试模式。

### 关于江协科技提供的OLED相关教程 #### OLED调试工具与源码实例 江协科技提供了详细的STM32学习资料,其中包括P9节专门针对OLED调试工具进行了讲解[^1]。在此部分中,主要展示了如何利用STM32来驱动OLED屏幕,并提供了一个具体的`main.c`文件作为案例研究。值得注意的是,实际用于控制OLED屏的底层驱动代码并未完全公开,而是建议开发者直接参考官方发布的示例源码。 ```c // main.c 示例片段 int main(void){ // 初始化系统时钟、GPIO以及OLED设备 SystemInit(); GPIO_InitTypeDef GPIO_InitStruct; // 配置并初始化OLED接口引脚... } ``` #### STM32入门教程中的OLED介绍 除了上述具体的应用实践外,在更基础层面,《江协科技STM32入门教程》也涵盖了有关OLED的基础知识及其硬件特性描述[^2]。这部分内容不仅帮助初学者理解OLED的工作原理和技术参数,还介绍了其在嵌入式项目里的应用场景,特别是当配合STM32单片机使用时的优势所在。 #### OLED硬件连接指南 对于希望深入了解OLED物理层面上的操作者来说,《江协科技/江科大-STM32入门教程》第七进一步探讨了不同类型的OLED模块(如黄蓝双色版),并且解释了这些特殊型号的设计考量和适用范围[^4]。书中提到,“无论哪个规格版本,驱动方式都是一样的”,这意味着即使面对多种颜色组合或多尺寸的选择,开发人员依然可以遵循统一的方法论来进行编程设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值