基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)

Posted 遗忘丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)相关的知识,希望对你有一定的参考价值。

系列文章目录

一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁
二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发
三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方
四、基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块
五、基于STM32F103C8T6(HAL库)的HC-SR501红外人体传感及HC-SR04超声波测距
六、基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)


文章目录


前言

OLED驱动.c及.h文件下载链接:

7针 OLED驱动.c及.h程序(SPI) Oled-0.96-Hal-Drive(均免费下载,无需积分)

PCtoLCD2002字模软件下载链接:

PCtoLCD2002字模软件下载链接

参考博文:

0.96 oled HAL库驱动 SPI STM32

本文开发环境:

MCU型号:STM32F103C8T6最小系统板
IDE环境: MDK V5.36
代码生成工具:STM32CubeMx 6.3.0

电路板实拍:


一、配置CubeMX

在已有基础上,开启SPI,完成模式设置,参数设置,选三个GPIO口(我选择PA6,PB0,PB1,因为他们五个在单片机上是连续的,连线方便)。

二、硬件连线部分

  • GND —> GND
  • VCC —> 3.3V
  • DO —> SPI_SCK (PA5)
  • D1 —> SPI_MOSI (PA7)
  • RES —> OLED_RES (PB0)
  • DC —> OLED_DC (PB1)
  • CS —> OLED_CS (PA6)

三、逻辑代码部分

初始化代码

  /* USER CODE BEGIN 2 */
  
	/* OLED初始化*/
	OLED_Init(); 
	OLED_ColorTurn(0);//0正常显示,1 反色显示 
	OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示 

  /* USER CODE END 2 */

OLED显示函数调用实例

void OLED_NonHumanBodyChineseShow()

	OLED_ShowChinese(26,24,28,16);   //持
	OLED_ShowChinese(40,24,29,16);   //续
	OLED_ShowChinese(56,24,30,16);   //监
	OLED_ShowChinese(72,24,31,16);   //测
	OLED_ShowChinese(88,24,27,16);   //中
	
	OLED_ShowChar(40,48,46,12);     //.
	OLED_ShowChar(48,48,46,12);     //.
	OLED_ShowChar(56,48,46,12);     //.
	OLED_ShowChar(64,48,46,12);     //.
	OLED_ShowChar(72,48,46,12);     //.
	OLED_ShowChar(80,48,46,12);     //.
	
	OLED_Refresh();

其中,汉字显示函数

//显示汉字
//x,y:起点坐标
//num:汉字对应的序号
//取模方式 列行式
void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t num,uint8_t size1)

字符显示函数

//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//chr = 字符序号+32
//size:选择字体 12/16/24
//取模方式 逐列式
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t size1)

四、汉字取模

汉字序号,字符序号均在oledfont.h文件中,而汉字符号的取模可以通过PCtoLCD2002这款软件获取。

PCtoLCD2002字模软件下载链接:

PCtoLCD2002字模软件下载链接

运行界面如下:

选项设置如下:

把获得的数组放入oledfont.h文件对应数组即可,如我选用尺寸(size)16号的汉字数组库,就在里面添加

0x10,0x10,0x10,0xFF,0x10,0x10,0x40,0x48,0x48,0x48,0x7F,0x48,0xC8,0x48,0x40,0x00,
0x04,0x44,0x82,0x7F,0x01,0x00,0x02,0x02,0x0A,0x12,0x42,0x82,0x7F,0x02,0x02,0x00,/*"持",28*/

0x20,0x30,0xAC,0x63,0x20,0x18,0x20,0x24,0xA4,0x24,0x3F,0xA4,0x24,0xA4,0x60,0x00,
0x22,0x67,0x22,0x12,0x12,0x12,0x88,0x8A,0x4C,0x29,0x18,0x0F,0x18,0x28,0xC8,0x00,/*"续",29*/

0x00,0x00,0x7E,0x00,0x00,0xFF,0x00,0x40,0x30,0x0F,0x04,0x14,0x64,0x04,0x00,0x00,
0x40,0x40,0x7E,0x42,0x42,0x7E,0x42,0x42,0x42,0x7E,0x42,0x42,0x7E,0x40,0x40,0x00,/*"监",30*/

0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00,
0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00,/*"测",31*/

0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00,/*"中",27*/

其中序号,就是汉字二维数组的序号,根据自己的排序而定。

以上是关于基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)的主要内容,如果未能解决你的问题,请参考以下文章

基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块

基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)

基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)

基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)

基于STM32F103C8T6(HAL库)的HC-SR501红外人体传感及HC-SR04超声波测距

基于STM32F103C8T6(HAL库)的HC-SR501红外人体传感及HC-SR04超声波测距