【STM32+HAL】OLED显示初始化配置

一、所用工具:

1、芯片: STM32F407ZGT6

2、STM32CubeMx软件

3、IDE: MDK-Keil软件

4、显示屏:0.96OLED显示屏4Pin

二、实现功能:

初始化OLED字符及图片显示

三、准备工作:

1、有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32+HAL】CUBEMX初始化配置

2、准备好商家提供的OLED文件(本文末附)

四、HAL库配置步骤:

1. 开启I2C

2.配置GPIO

至此,HAL库配置完成,点击生成code

五、KEIL添加代码:

1、找到商家提供的资料,并添加到keil中

 

 记得添加头文件路径

2、初始化OLED

  	OLED_Init();
	OLED_Clear();
	HAL_Delay(1000);

3、接下来就可以开始显示了

1.显示数字:
OLED_ShowNum(0,0,798666,8,16);
	HAL_Delay(1000);
2.显示汉字

用取模软件取出数据后

添加到数组中

调用汉字显示函数

在主函数中调用

 OLED_ShowCHinese(80,0,1);
 3.显示图像

添加自定义函数

void oled_draw_bmp(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint8_t *pic)
{
    uint8_t temp_page = 0;
    uint8_t start_page = y0 / 8;   
    uint8_t end_page = y1 / 8;     
    for (temp_page = start_page; temp_page < end_page; temp_page++)
    {
		OLED_Set_Pos(x0,temp_page);
		for(int t=0;t<128;t++)
		{
				OLED_WR_DATA(*(pic++));
		 }
		x0=0;
    }
}

 用取模软件生成后和汉字一样添加到数组

unsigned char xzy[] = {  //图片数组
0x00,0x00,0x00,0x00,0x80,0xC0,0x20,0x18,0x68,0x88,0x00,0x00,0x00,0x18,0x70,0x00,
0x00,0x00,0x00,0x40,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0xF0,0x80,0x90,0x90,0x90,0x10,0x10,0x10,0x10,0x10,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x61,0x21,0x23,0xFD,0x91,0x10,0x19,0x81,0xC3,
0xD9,0x61,0x61,0x31,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x04,
0xF0,0x04,0xC0,0x84,0x84,0x83,0x86,0x02,0x1E,0xF2,0x44,0x42,0x66,0x22,0x24,0x27,
0x26,0x00,0x06,0x06,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x00,
0x00,0x00,0x03,0x0E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x00,0x02,0x02,0x00,0x02,
0x04,0x00,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xB8,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x60,0x00,
0x00,0x03,0x68,0x00,0x08,0xF0,0x00,0x08,0x08,0x08,0x0B,0xD8,0x00,0x10,0x10,0x10,
0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x38,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x40,0x30,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xEF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF6,0x00,0x00,0x0C,0x1E,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0xEF,0x02,0x04,0x04,
0x00,0x04,0x04,0x04,0x04,0x04,0x00,0x80,0x36,0x00,0xC0,0x20,0x20,0x10,0x08,0x08,
0x04,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0xC6,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x02,0x02,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x02,0x02,0x00,
0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,
0x00,0x02,0x02,0x02,0x02,0x02,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

在主函数中调用

oled_draw_bmp(0, 0, 127, 63, xzy);

4.显示负数:
#include "string.h"
#include <stdlib.h>

char S_Encoder[8];
int test=-123;	

sprintf(S_Encoder,"%d",test);
OLED_ShowString(0,0,(uint8_t *)S_Encoder,16);

5.显示小数:
#include "string.h"
#include <stdlib.h>

char S_Encoder[8];
float test=-123.321;	

sprintf(S_Encoder,"%.3f",test);
OLED_ShowString(0,0,(uint8_t *)S_Encoder,16);

完工

六、参考文章

【STM32】HAL库 STM32CubeMX教程十二---IIC(读取AT24C02 )

七、注意事项

1、横坐标范围:0-125

2、纵坐标范围:0-7

八、源码提供

【STM32+HAL】OLED显示初始化配置

九、更多OLED

【STM32+HAL】地表最强高刷OLED显示配置【I2C】

【STM32+HAL】七针OLED(SSD1306)配置(SPI版)

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
STM32是意法半导体公司推出的一款32位微控制器,具有丰富的外设和强大的性能。HAL是意法半导体公司提供的一个可移植的、易于使用的硬件抽象层库,可以方便地进行底层驱动和外设编程。OLED(Organic Light-Emitting Diode)是一种有机发光二极管显示技术,具有超薄、高亮度、快速响应和低功耗等特点。 而OLED1.8是一款1.8英寸的OLED显示屏,适用于STM32系列微控制器。通过使用STM32 HAL库提供的函数和方法,我们可以方便地控制OLED显示屏进行图像的显示和刷新操作。 首先,我们需要设置STM32的GPIO引脚,与OLED屏幕的时钟信号、数据信号、复位信号等进行连接。然后,我们可以使用HAL库提供的函数来配置这些GPIO引脚。 接下来,我们需要初始化OLED屏幕。通过发送相应的控制命令和数据,我们可以设置OLED的工作模式、显示区域、亮度等参数。这些操作可以使用HAL库提供的函数来完成。 然后,我们可以通过调用HAL库中的函数来将图像数据写入到OLED屏幕的缓冲区中。这些函数可以直接将位图数据写入到OLED屏幕的内存,从而实现图像的显示。 最后,我们可以使用HAL库提供的函数来刷新OLED屏幕,使其显示更新后的图像。这些函数可以将OLED屏幕缓冲区中的数据刷新到实际的显示屏上,从而实现图像的动态刷新。 总结来说,STM32 HALOLED1.8的结合可以方便地实现对OLED显示屏的控制和图像的显示。通过HAL库提供的函数和方法,我们可以快速、简单地进行开发,并实现丰富多彩的显示效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值