您现在的位置是:首页 >学无止境 >STM32单片机(四)第一节:OLED调试工具网站首页学无止境
STM32单片机(四)第一节:OLED调试工具
❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。
☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋。
?专栏目标:实现从零基础入门51单片机和STM32单片机,力求在玩好单片机的同时,能够了解一些计算机的基本概念,了解电路及其元器件的基本理论等。⭐️ 专栏主要内容: 主要学习STM32单片机的功能、各个模块、单片机的外设、驱动等,最终玩好单片机和单片机的外设,全程手敲代码,实现我们所要实现的功能。
? 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
?专栏主页:http://t.csdn.cn/HCD8v
本学习过程参考:https://space.bilibili.com/383400717
STM3单片机安装软件、各种资料以及源码的路径:
链接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取码:asdf
链接里压缩包的解压密码:32
本大节主要学习OLED调试工具,包含两部分,第一小节主要学习OLED的基础知识,第二小节是写一个简单的程序进行练习,即OLED显示屏,最终提供一个OLED显示屏的驱动函数模块,可以在OLED上显示我们需要的调试信息;
本小节主要是对OLED的基础知识进行学习。
1 单片机常用调试方式
对于我们的单片机变成而言,经常会遇到的一个很大的问题就是程序调试,因为单片机不像电脑,电脑有一个很大的屏幕,想看什么变量、参数,都可以直接打印大屏幕上;单片机不一样很多时候由于成本和电路结构的限制,它并不会有一个像电脑屏幕那样强大的显示屏,这就对我们的调试造成了困难;
目前常用的程序调试方式有以下几种:
- 串口调试方式是非常常见的,就是用串口将单片机连接到电脑,相当于把电脑的屏幕挂在单片机上,方便单片机显示调试信息;一般我们涉及PCB电路板的时候都会使用串口调试;串口调试的弊端当然就是调试的时候需要拖着电脑;
- 显示屏调试的方式比较直接,也非常方便;其优势是对于不断变化的数据,可以覆盖刷新显示;而且显示屏可以始终接在单片机上,显示方式很直接;还有一般我们做一些稍微复杂的东西,都需要有一个人机交互的界面,这样就可以把显示屏当做产品的一部分,还是非常好用的;显示屏的弊端就是屏幕太小,显示内容有限;
这三种方式各有利弊,可以根据不同的场景选择不同的调试方法;本节我们主要使用OLED的方式进行调试;
2 OLED简介
- OLED是(Organic Light Emitting Diode)的缩写,意思是有机发光二极管;
- OLED显示屏就是使用OLED做出来的显示屏;
- 宽视角是指OLED屏幕上是自发光的,所以无论从哪个角度看,显示内容都是清晰的;
上图中的最底下列出了四种OLED的外观和种类;
- 其中第一种是我们此次学习使用的,总共有4个针脚,像素是白色的;使用I2C的通信协议
- 第二种是7针脚版本的,需要占用的IO口多一些;使用SPI的通信协议;
- 第三种支持蓝色的像素;
- 第四种,支持黄蓝双色的版本,其中上面四分之一固定是黄色,下面四分之三固定是蓝色;这种屏幕适合用作需要显示标题行的界面;
以上四种不同的显示屏,其驱动方式都是一样的;
3 硬件电路
OLED的硬件电路如下图所示:
- 左边是4针脚版本的OLED电路;GND接GND;VCC接3.3V,给OLED供电;然后剩下的SCL和SDA是I2C的通信引脚;需要接在单片机的I2C通信引脚上;(备注,本课程实现的驱动函数模块用的是GPIO口模拟的I2C通信,所以这两个端口就可以接在任意的GPIO口上)
- 右边是7针脚版本的OLED电路;也是一样,GND接GND;VCC接3.3V,给OLED供电;剩下的引脚是SPI通信协议的引脚;(如果是GPIO口模拟的通信协议,那也是支持接在任意的GPIO口的)
4 OLED驱动函数
最后先来预先看一下本节实现的驱动函数模块都包含哪些接口;
如上图所示, 从表里可以看到提供的所有驱动函数;
右上角是OLED实物图和屏幕坐标图;
屏幕坐标图包含4行16列的小区块,从左上开始,向下依次是第1行、第2行、第3行、第4行;向右依次是第1列、第2列、第3列、一直到第16列;
- OLED_Init()函数是OLED的初始化函数,在使用OLED之前需要先调用一下这个函数,对OLED进行初始化,然后就可以正常使用了;
- OLED_Clear()函数是清屏函数,调用这个函数,屏幕就会清空;
- 下面的函数就是OLED的显示函数了,具体显示的内容在右侧作用中有写;
下一节将演示如何对这些驱动函数进行使用。