STM32——OLED显示屏(4)

这篇具有很好参考价值的文章主要介绍了STM32——OLED显示屏(4)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、调试方式

二、OLED简介

三、OLED硬件电路

四、OLED驱动函数

五、OLED显示屏使用

1、硬件接线图

2、添加OLED驱动函数

3、程序

4、实物展示

 六、Keil软件自带调试模式


一、调试方式

        对于单片机的编程而言,经常会遇到一个很大的问题,就是程序调试,单片机不像电脑,电脑有一个很大的屏幕,想看什么变量、参数,直接打印到屏幕就可以了,但是单片机不一样,很多时候由于成本和电路结构的限制,它并不会有一个像电脑屏幕那样强大的显示屏,这就对我们的调试造成了困难,例如,如果学习C语言,但是不允许使用printf这个打印函数,那C语言就根本没法学习了,所以,如果单片机没有任何可以显示参数的东西,那单片机也没办法学习。

三种常用的调试方法

串口调试:

        通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息。
        串口调试的优点是可以借助强大的电脑来调试,电脑端的软件,不仅可以显示单独的参数,而且可以显示曲线、图形、图像等,还可以自己做一个软件,来实现一个强大的用户交互界面。
        串口调试的缺点是调试的时候需要带着电脑,而且通常的串口助手只能以信息流的方式呈现数据,就是只能一行一行的打印,如果有很多不断变化的数据需要显示,那就只能在电脑上刷屏显示,这样用起来就不太方便。

显示屏调试:

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

        显示屏调试的优点是对于不断变化的数据,可以覆盖刷新显示,而且显示屏可以始终接在单片机上,显示方式很直接,如果我们做一个稍微复杂的东西,都会需要有一个人机交互的界面,这样就可以直接把显示屏当作产品的一部分。
        显示屏的缺点就是显示屏幕太小,显示内容有限,没有电脑软件那么强大的功能。

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


二、OLED简介

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

OLED显示屏:性能优异的新型显示屏。具有如下特点:

功耗低:因为OLED每一个像素都是一个单独的发光二极管,不像LCD那样需要有背光,所以OLED屏幕会比较省电。

响应速度快:这个特性可以使OLED有更高的刷新率,总线时序快,也可以避免阻塞我们的程序。

宽视角:因为OLED屏幕上是自发光的,所以在任何角度看,显示内容都是清晰的。

轻薄柔韧:在手机上的折叠屏、柔性屏等,用的就是OLED显示屏。

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

供电:3~5.5V

通信协议:I2C(4针脚),SPI(7针脚)

分辨率:128*64


三、OLED硬件电路

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

 4针脚OLED硬件电路如上图所示,GND接GND,VCC接3.3V,给OLED供电,剩下的是SCL和SDA是I2C的通信引脚,需要接在单片机I2C通信的引脚上,由于驱动函数模块用的是GPIO口模拟的I2C通信,所以这两个端口就可以接在任意的GPIO口上。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

7针脚OLED电路图如上所示, GND接GND,VCC接3.3V,给OLED供电,剩下的引脚是SPI通信协议的引脚,如果是GPIO口模拟的通信协议,那也是接在任意的GPIO口上就行了。


四、OLED驱动函数

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

OLED实物图

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

OLED屏幕坐标图 

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

 驱动函数

OLED_Clear();                                                                             //将OLED清屏

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

一个参数起始行,第二个参数起始列,第三个参数是要显示的字符。

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

一个参数起始行,第二个参数起始列,第三个参数是要显示的字符串。

如果想要OLED清除部分数据,只需要在对应的位置显示空格即可

OLED_ShowNum(2, 1, 12345, 5);                                               //显示无符号十进制数字

一个参数起始行,第二个参数起始列,第三个参数是要显示的数字,第四个参数是数字的长度。

OLED_ShowSignedNum(2, 7, -66, 2);                                         //显示有符号十进制数字

一个参数起始行,第二个参数起始列,第三个参数是要显示的数字和正负号,第四个参数是数字的长度。

OLED_ShowHexNum(3, 1, 0xAA55, 4);                                       //显示16进制数字

一个参数起始行,第二个参数起始列,第三个参数是要显示的数字,第四个参数是数字的长度。

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

一个参数起始行,第二个参数起始列,第三个参数是要显示数字的十六进制,第四个参数是数字的长度。


五、OLED显示屏使用

1、硬件接线图

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

记得将PB7用跳线接到边上的正极,PB6接边上的负极。 

Stm32的引脚上电后,如果不初始化,默认是浮空输入的模式,在这个模式下,引脚不会输出电平,所以不会有什么影响。

2、添加OLED驱动函数

在江科大给的资料中,程序源码的位置能找到OLED模块的驱动函数,选择4针脚版本的,然后复制到新建工程文件夹4.1  OLED显示屏中的Hardware文件夹中。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

然后在Keil软件中,右键Hardware文件夹,选择第三个添加文件至Hardware,然后文件类型选择所有文件类型,Ctrl选中红框内的三个文件,再点击Add添加,即完成在Keil软件中添加OLED驱动函数。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

添加完成后,还需要对部分代码进行修改,打开OLED.c文件,找到下面代码,之前的硬件接线图中,我们将OLED的SCL口接到了PB8,SDA口接到了PB9,则后面的引脚选择都得改成GPIOB, GPIO_Pin_8和GPIO_Pin_9,包括后面的OLED初始化函数都得改成对应的引脚。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

在OLED.Font.h文件中,存放的是OLDE的字库数据。由于OLED显示屏没有自带字库,因此想要显示图形,还得先定义字符的点阵数据,OLED.c文件的显示函数会用到这些数据。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

3、程序

主函数

#include "stm32f10x.h"                  						// Device header
#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);
	while(1)
	{
	
	}
}

4、实物展示

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机


 六、Keil软件自带调试模式

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

如上图所示,首先点击工程选项,然后点击Debug这里,可以对调试选项进行配置, 默认是选择右边红色框内这一项,这个是在硬件上在线仿真,需要把STLINK和stm32都连接好,如果不想连接硬件,也可以选择左边黄色框内,选择使用仿真器的这个选项,这样就是电脑模拟stm32的运行了。

我们这里使用硬件在线仿真,在进入调试模式之前,需要连接好stm32。然后点击下图中的放大镜里面带个d的图标,进入调试模式。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

 单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

红色框内,即主窗口就是我们编写的C语言程序,上面黄色框内的窗口,就是C语言翻译成的汇编语言,能够看到每一句C语言实际上执行了哪些操作,左边蓝色框内的窗口是寄存器组和状态标志位等信息,这个是单片机硬件底层很重要的东西,如果用汇编语言,这些东西都是必须要非常清楚的,但是如果用的C语言,那这些东西就不需要管。

 单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

接下来看工具栏的作用,左起第一个红色框内的是复位,第二个黄色框内的是全速运行,第三个蓝色框内的是停止全速运行 。

 单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

接下来,左起第一个红色框内的是单步运行,第二个黄色框内的是跳过当前单步运行,第三个蓝色框内的是跳出当前函数单步运行,第四个绿色框内的是调到光标指定行单步运行。

 单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

 在主窗口中,左边蓝色和黄色两个箭头连在一起的就是下一句将要执行的代码,我们还可以在深灰色区域左键设置断点,然后点击全速运行,程序就会一直运行,直到断点停下,如果没有断点,程序全速运行,就不会停下来,点击停止全速运行按钮,程序才会停下来。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

接下来继续看窗口功能,第一个红色框内的是命令窗口,我们点击它可以打开和关闭命令窗口,命令窗口在软件的左下角位置。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

第二个黄色框内的是反汇编窗口,也是可以打开和关闭的,即主窗口上面的窗口。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

第三个蓝色框内的是符号窗口,打开后会显示在主窗口的右边,在这里我们可以实时查看程序中所有变量的值。

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

 单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

继续看工具栏,第一个红色框内的是串口显示,第二个黄色框内的是逻辑分析仪。

 我们还可以点击这个外设菜单栏,选择第一个系统资源查看,这里就能看到所有的外设寄存器了,比如我们选择GPIOA,点击,就会在主窗口的右边显示GPIOA外设的所有寄存器,点击ODR寄存器,这里ODR0就是PA0的输出数据寄存器。 

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

单片机怎么连接oled屏幕,STM32学习,stm32,嵌入式硬件,单片机

Stm32实时执行程序,Keil软件实时显示外设寄存器状态,还能随时控制程序的开始、停止、单步运行,所以当我们遇到一个比较难调试的程序时,如果不清楚程序时如何执行的,或者想看一大堆变量却不方便显示的,或者想看一下寄存器是不是配置正确了,都可以考虑使用Keil自带的调试模式。

最后再说明一下,如果想修改程序的话,是不能直接在这个调试模式下修改的,修改程序得先退出调试模式,重新编译,再进入调试模式。 文章来源地址https://www.toymoban.com/news/detail-769251.html

到了这里,关于STM32——OLED显示屏(4)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32-OLED显示屏

    *本文采用的OLED显示屏为4针脚IIC显示屏,4针脚分别为GND,VCC,SCL,SDA OLED.C OLED_Font.h main.c

    2024年02月05日
    浏览(22)
  • STM32——OLED显示屏(4)

    目录 一、调试方式 二、OLED简介 三、OLED硬件电路 四、OLED驱动函数 五、OLED显示屏使用 1、硬件接线图 2、添加OLED驱动函数 3、程序 4、实物展示  六、Keil软件自带调试模式         对于单片机的编程而言,经常会遇到一个很大的问题,就是程序调试,单片机不像电脑,电

    2024年02月03日
    浏览(20)
  • STM32 软件IIC 控制OLED 显示屏

    需要看原理图了

    2024年02月09日
    浏览(17)
  • STM32F103驱动oled显示屏

    oled显示屏和其他显示屏类似,不过他只有0.96英寸,屏幕较小,但是使用起来比较方便。有二种驱动方式,分别为IIC,和SPI驱动。驱动方式比较简单。IIC驱动的话只需要4根线,电源,地线,数据线,和时钟线。 我这里使用的是IIC协议驱动oled显示屏,如果想了解IIC协议的可以看

    2024年02月11日
    浏览(23)
  • 5、江科大stm32视频学习笔记——OLED显示屏

    目录 1、OLED简介  2、OLED硬件电路 3、OLED驱动函函数简介和应用 4、用keil进行调试 4引脚OLED SCL和SDA是I2C通信引脚,需要接在I2C通信的引脚上 实验中用的模块是GPIO口模拟的I2C通信,故SCL和SDA两个端口可以接在任意的GPIO口上 7引脚OLED 右边5个引脚是SPI通信协议的引脚 如果是GPI

    2024年02月14日
    浏览(15)
  • 单片机期末设计 - 液晶显示屏显示时间、日期、温度及按键控制(实验板实现)

    设计本代码的主要目的是为了完成期末作业,即在液晶显示屏上显示、时间、日期、温度,以及用按键控制时间、温度的显示。总的来说就是对前面学习计数的糅合,本代码实现的是显示时间,并能在实验板上成功显示。 1.液晶显示屏模块应用 主要是学会如何在液晶显示屏上

    2024年02月08日
    浏览(30)
  • 基于单片机的点阵电子显示屏上下左右移加减速系统

    一、系统方案 本设计的任务就是完成一个16 16的点阵设计,并能滚动显示“ ********************”内容。 主要内容是,能同时流动显示汉字;能实现显示汉字无闪烁;能实屏幕亮度较高。本LED显示屏能够以动态扫描的方式显示一个16×16点阵汉字,并能通过单片机实现内容滚动显示

    2024年02月09日
    浏览(14)
  • 基于AT89C51单片机的LED点阵显示屏设计

    点击链接获取Keil源码与Project Backups仿真图: [[https://download.csdn.net/download/qq_64505944/88637464?spm=1001.2014.3001.5503]] **[源码获取] B 源码+仿真图+课程设计+50 工程实训(三)课题设计 LED点阵显示屏设计 LED点阵显示屏通过编程控制可以显示中英文字符、图形及视频动态图形,广泛用于指

    2024年02月02日
    浏览(27)
  • 单片机 用LCD显示屏 输出字符串源代码(附Proteus图)

    附:字符型LCD显示屏型号:LM016L;这个代码应该是可以直接运行的

    2024年02月14日
    浏览(14)
  • STC89C52单片机LCD1602显示屏介绍与代码演示

    LCD1602显示屏介绍 引脚介绍 内部结构框图  存储器  DDRAM储存器地址  CGRAM与 CGROM的地址 时序介绍 LCD1602快捷指令  LCD1602指令操作流程: 字符、字符串的显示  各种进制的数字显示 在LCD1602上显示十进制数字 在LCD1602上显示十六进制数字 在LCD1602上显示二进制数字 LCD1602(Liq

    2024年02月08日
    浏览(19)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包