STM32入门教程-2023版【4-2】OLED显示屏简介

关注 + 点赞  不错过精彩内容

图片

大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 

本小结学习一下如何使用OLED显示屏的函数驱动模块

一、OLED显示屏简介

(1)搭建面包板电路

  • 根据接线图接线,这里把OLED插在了面包板的右下方,以后我们就一直把这个屏幕插在这里,需要用的时候随时可以使用,而且放在右下角也不是很占地方

  • 我们使用的是4针脚的OLED屏幕,我们可以在OLED的下面(也就是最右下角的这张图片上),用跳线先插上两根线,把OLED屏幕的GND引到负极供电孔,VCC引到正极供电孔。

  • 此时这个供电孔也会同时接到stm32的PB6和PB7两个引脚,有的同学可能会问,这两个引脚不是电源引脚,可以这样接吗?

  • 其实这个也是没关系的,后面写代码我们直接不初始化这两个引脚就行了,如果不初始化,默认是浮空输入的模式,此时引脚不会输出电平,所以不会有什么影响 。

  • 另外还有一种办法给OLED显示屏供电,你可以不接这两根跳线,直接让PB6口输出低电平,PB7口输出高电平,用GPIO口直接给OLED供电,这个也是没问题的,因为这个OLED功率很小,所以也是可以驱动的,不过这种用GPIO口供电不是很规范,自己玩玩的时候用就行了,要做实际项目的话最好还是用电源供电。

  • 那插好这两个供电跳线之后,再把OLED插到PB6到PB9这四个口,这样OLED就接好了,此时OLED的SCL接到PB8,SDA接到PB9

图片

(2)新建工程

文档这里直接复制之前搭建好的3-4 按键控制LED的工程文件夹,起名为4-1 OLED屏幕,

图片

  • 回到工程文件夹中,在\STM32入门教程资料\程序源码\STM32Project\中有一个1-4 OLED驱动函数模块文件夹,里面有已经准备好的OLED驱动函数模块,可以下载程序源码查看。

  • 打开这个文件夹,里面有两个版本,一个是4针脚I2C版本,另一个是7针脚SPI版本,我们这里用的是4针脚的版本。直接打开这个文件夹,将这三个文件全部选中,Ctrl+C复制到刚刚创建的OLED显示屏工程文件夹中的Hardware文件夹中

图片

图片

图片

之后打开Keil,在Hardware处右键,添加已经存在的OLED文件,按佳Ctrl键选中这三个文件,Add

图片

这样就把OLED的文件添加到工程里来了

图片

  • 打开这三个文件,现在OLED.c里面就是函数的主体代码了,可以看到这个文件包括了引脚配置、引脚初始化、I2C通信的基本时序和OLED用户调用的代码等,这些函数都已经写好了,我们需要更改的就只有引脚配置、引脚初始化的代码。

  • 引脚配置这部分可以更改选择硬件电路上把SCL和SDA这两个引脚接在哪两个端口,比如我们现在SCL接在了PB8,那我们的代码就可以改成#define OLED_W_SCL(x)    GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x))

  • 如果接到了PA6上,就可以改成#define OLED_W_SCL(x)    GPIO_WriteBit(GPIOA, GPIO_Pin_6, (BitAction)(x))

  • 同理SDA的引脚配置也是一样的。

图片

  • 与此同时还要更改下引脚初始化函数对应端口,这里面就是把SCL和SDA的两个引脚都初始化为开漏输出的模式

  • 这部分代码和上一节GPIO类似,还不熟悉可以回头看下GPIO的那一节复习下

  • 具体更改就是,使用到的GPIO外设都先用RCC开启一下时钟,再初始化下GPIOB的Pin8、Pin9,所以对于这个模块来说,源代码中默认用的是SCL接PB8,SDA接PB9

图片

如果你想修改成别的GPIO口,那就要把引脚配置、引脚初始化都改一下,剩下的都不需要修改,就可以直接使用这个OLED驱动函数模块了

在OLED.h中,就是外部可调用函数的声明

图片

  • 最后是OLED_Font.h文件,这里存的是OLED的字库数据

  • 因为这个OLED显示屏是不带字库的,想要显示字符图形,还得先定义字符的点阵数据,OLED.c文件的显示函数会用到这些数据,所以我们需要将这个文件一同复制到工程文件中,这里的字库不需要自己修改,如果想加一些别的图形或字符,可以用别人的代码或一些其他的取模软件,这部分可以自行上网搜索了解。

图片

最后清理下main.c的代码,编译下载测试一下,没有问题,现在这就是完整的OLED显示屏的工程了

图片

作 者 :硬核王同学

------- END --------

关注公众号回复“加群”按规则加入技术交流群  回复“1024”查看更多内容

图片

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要实现STM32检测MQ-2并在OLED上显示,需要先连接好MQ-2模块和OLED模块,并对串口和I2C进行初始化配置。接下来,使用STM32的ADC模块对MQ-2模块进行信号采集,然后通过一定的算法将MQ-2模块采集到的气体浓度值转换为可读的数据,最后将其通过I2C协议发送给OLED模块显示。 在程序设计方面,需要结合STM32的ADC采样功能和I2C通信协议进行编程,可以使用HAL库或者CubeMX快速生成代码。先初始化GPIO和I2C,再在主函数中循环调用ADC进行气体浓度的采集,然后处理数据并发送到OLED显示。同时还需要在OLED上设计一定的布局和显示样式,可以使用开源的OLED库或自行编写。 在实际应用中,还需要考虑到MQ-2模块的安装位置和采样频率等因素,以保证测量结果的准确性和稳定性。此外,还需加入一些保护机制和异常处理程序,以应对MQ-2模块出现故障或读取数据异常的情况。 ### 回答2: MQ-2是一种常见的烟雾、气体检测模块,可以用来检测室内空气中的一氧化碳、乙醇、甲烷等有害气体,具有广泛的应用。而STM32则是一种常见的单片机,人们可以通过编程进行各种控制、运算。 因此,我们可以通过将MQ-2模块与STM32单片机进行连接,使得单片机能够接收到模块检测到的数据信号,再将其处理后显示在OLED屏幕上。 具体实现步骤如下: 1. 准备工作:将MQ-2模块的传感器引脚与STM32单片机的GPIO引脚连接,将OLED屏幕的引脚连接到STM32单片机对应的引脚上。 2. 编写代码:通过STM32的编程软件,编写控制MQ-2模块和OLED屏幕的控制程序。其中,需要设置GPIO引脚的输入输出模式,读取MQ-2模块的检测数据并通过计算转换成实际的气体浓度,最终将浓度值显示在OLED屏幕上。 3. 调试程序:将STM32单片机按照接线方式与MQ-2模块和OLED屏幕连接,将编写好的程序下载到STM32单片机中,进行调试测试。可以逐个检查引脚连接和程序的代码是否正确,查看程序执行效果。 通过以上步骤,我们可以实现STM32检测MQ-2模块并在OLED屏幕上显示气体浓度的需求。这一过程中,我们需要有相关的硬件和编程技术储备,同时也需要注意安全和正确性问题。 ### 回答3: 首先需要了解MQ-2传感器的工作原理,MQ-2传感器可以检测气体的浓度,一般用来检测烟雾等有害气体。在STM32的开发中,通过ADC模块读取MQ-2传感器的模拟信号,然后根据读取的数值进行转换,得到对应的气体浓度值。接下来,将浓度值传输到OLED屏幕上进行显示。 具体实现步骤如下: 1. 首先需要初始化ADC模块,设置其对应的GPIO引脚接收模拟信号,并打开ADC的时钟。同时需要设置ADC采集模式、采样时间、转换精度等参数。 2. 接下来在主函数中通过循环读取ADC模块的数值,并进行转换。将转换后的数值传递给OLED屏幕进行显示。 3. 显示可以通过调用OLED屏幕的驱动函数实现。根据实际需求可以设置不同的显示格式,如显示气体浓度、警告提示等。 需要注意的是,在不同的芯片平台下,ADC模块的设置和读取方法有所不同。同时在电路设计中需要考虑到对应的传感器和OLED模块的引脚接法,在代码调试时需要进行针对性调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬核王同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值