【STM32教程】第三章 使用OLED屏作为调试工具

案例代码及相关资料下载链接:

链接:https://pan.baidu.com/s/1hsIibEmsB91xFclJd-YTYA?pwd=jauj 
提取码:jauj 

1    OLED调试工具

1.1对程序调试的认识与OLED简介

本章节只需要知道怎么调用封装好的驱动函数,用OLED屏幕来做调试工具即可,对于OLED屏幕的原理与函数代码将会在I2C通信之后讲解。

对于单片机编程而言,尤其是STM32这种模块多函数代码复杂的单片机进行编程,程序调试是非常重要的,因为单片机没有像电脑一样有很大的显示屏,想看其中的变量与参数打印到屏幕即可而单片机,由于材料和成本的问题导致对单片机编程的调试有很大的困难,所以对于程序调试的学习非常重要,而目前常用的调试方式有以下几种:

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

优点:通过串口连接电脑,用功能更强大的电脑来协助调试,由于电脑不仅可以显示参数,还可以显示图形,曲线等。

劣势:借助电脑就说明调试需要拖着电脑,并且通常的串口助手只能以信息流的方式呈现数据,需要我们对电脑不停的刷屏所以便捷度不高。

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

优点:对于不断变化的数据可以覆盖刷新显示,而OLED显示屏是始终接在单片机上,显示方式更直接,操作起来也更便捷。

劣势:和电脑相比的话OLED显示屏的屏幕太小,显示内容有限,不能大规模的来调试,而且功能较为单一,调试功能没有电脑强。

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

OLED的简介:

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

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

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

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

对于OLED显示屏通常由四针角和七针脚,两者最明显的区别是:四针脚的OLED显示屏用的是I2C的通信协议,而七针脚的OLED显示屏用的是SPI通信协议。

OLED的硬件电路:

上图左边的硬件电路是四针脚的OLED显示屏,GND与VCC用来供电,而SCL与SDA是I2C的通信引脚,需要接在I2C的通信引脚之上,不过本节用到的驱动函数代码是GPIO口来模拟I2C的通信引脚,所以SCL与SDA是可以接到任意的GPIO口上的。而本开发板用到的OLED显示屏就是四针脚的。对于七针脚的OLED的接线电路与四针脚基本一致,除去VCC与GND之外剩下的接线口均为SPI的通信引脚,所以不做过多赘述。

1.2对OLED驱动函数的运用

OLED显示屏的接线图如下:

实物图如下:

OLED显示屏下面的电路连接:

 全部连接好如下图所示:

2. 编程部分:

2.1 配置STMCubeMX

首先配置STMCubeMX时,对电源连接的部分不用进行配置,只需要将PB8与PB9配置为输出模式即可,然后注意对GPIO口配置时将输出模式要配置为开漏输出,其他配置不变即可。

2.2 代码部分

对于OLED显示函数的代码之后会直接给文件,所以本次代码只是一个测试实验。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);	//显示二进制数字

具体代码如下:

  OLED_Init();//显示屏初始化

  while (1)

  {

     OLED_ShowChar(1, 1, 'A');//显示字符

     OLED_ShowString(1, 3, "HelloWorld!");//显示字符串

     OLED_ShowNum(2, 1, 12345, 5);//显示数字(最后一个参数为数字长度)

     OLED_ShowSignedNum(2, 7, -168, 3);//显示有符号的数字

     OLED_ShowHexNum(3, 1, 0xAA55, 4);//显示一个十六进制的数

     OLED_ShowBinNum(4, 1, 0xAA55, 16);//显示二进制的数

  }

2.3 效果

代码呈现的效果如下:

注:本文是我学生的STM32学习笔记,图文部分引用了江科大的STM32教程的课件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值