stm32外设笔记-LCD(一)

本文用到的实验平台:

  • 野火MINI-stm32开发板
  • STM32CUBE-IDE开发工具

1、LCD1602驱动原理

这个是属于之前用51单片机时候用的东西了,还是比较经典的,主要是这么大块屏幕然后价格也还可以,所以我觉得即使是在当今,如果追求极致性价比的话,还是有必要了解了解的!

  • 实物图如下所示:
    在这里插入图片描述
    1602的数据手册我也放到我的gitee上了 1602A使用说明
  • 常见原理图如下所示
    在这里插入图片描述

引脚说明如下,其实就是三个选择模式引脚加上8个数据引脚:
在这里插入图片描述
关于VL引脚我这里特别做了图示说明,VL引脚就是那个里面的像素点的亮度,不要搞得太高,也不要搞得太低了,太高的话像素点就是全量,就看不出字了,太低就没有了,就只是背光灯的亮度了,所以这里要谨慎选择,建议跟下面的图式一样使用一个电位器来调节!
在这里插入图片描述
关于模式引脚的说明如下:
在这里插入图片描述
控制指令说明:
在这里插入图片描述
指令说明:1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

  • 指令1:清显示,指令码01H,光标复位到地址00H位置。
  • 指令2:光标复位,光标返回到地址00H。
  • 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
  • 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
  • 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
  • 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
  • 指令7:字符发生器RAM地址设置。
  • 指令8:DDRAM地址设置。
  • 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
  • 指令10:写数据。
  • 指令11:读数据。

2、LCD1602驱动实战

下面就来读写驱动了

引脚配置如下所示
在这里插入图片描述
操作时序从数据手册中可以获取如下所示
在这里插入图片描述
一般也是分为写指令和写数据两个部分,区别在于RS的电平高低,这里直接操作GPIOA的ODR寄存器,就可以对他的前八位进行赋值了!
在这里插入图片描述
下面就是基于这个进行写入了
在这里插入图片描述
关于写入的位置需要查阅内部显示地址,内部显示地址如下所示:

在这里插入图片描述
源码如下:

#include "LCD1602.h"

#define RS_HIGH  HAL_GPIO_WritePin(RS_GPIO_Port, RS_Pin, GPIO_PIN_SET)
#define RS_LOW  HAL_GPIO_WritePin(RS_GPIO_Port, RS_Pin, GPIO_PIN_RESET)
#define RW_HIGH  HAL_GPIO_WritePin(RW_GPIO_Port, RW_Pin, GPIO_PIN_SET)
#define RW_LOW  HAL_GPIO_WritePin(RW_GPIO_Port, RW_Pin, GPIO_PIN_RESET)
#define EN_HIGH  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_SET)
#define EN_LOW  HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_RESET)

void LCD_Write_Cmd_Data(uint8_t cmd,uint8_t data)
{
	if(cmd) RS_HIGH; //data
	else RS_LOW; // cmd

	RW_LOW;
	EN_LOW;
	GPIOA->ODR = data;
	HAL_Delay(5);
	EN_HIGH;
	HAL_Delay(5);
	EN_LOW;
}
void LCD1602_Write_Init(void)
{
	LCD_Write_Cmd_Data(0,0x38);
	LCD_Write_Cmd_Data(0,0x06);
	LCD_Write_Cmd_Data(0,0x0C);
	LCD_Write_Cmd_Data(0,0x01);
	LCD_Write_Cmd_Data(0,0x80);
}
void LCD1602_Write_Worde(uint8_t com,uint8_t num,uint8_t *dat)
{

	LCD_Write_Cmd_Data(0,com);
	for(uint8_t i=0;i<num;i++)
	{
		LCD_Write_Cmd_Data(1,*dat++);
	}
}
void LCD1602_Write_Number(uint8_t com,uint16_t num)
{
	uint8_t number[]={"0123456789"};

	LCD_Write_Cmd_Data(0,com);
	LCD_Write_Cmd_Data(1,number[num/1000]);      // 1
	LCD_Write_Cmd_Data(1,number[num%1000/100]);  // 3
	LCD_Write_Cmd_Data(1,number[num%100/10]); 	 // 1
	LCD_Write_Cmd_Data(1,number[num%100%10]);    // 4
}

lcd1602.h

#include "main.h"


void LCD1602_Write_Init(void);
void LCD1602_Write_Worde(uint8_t com,uint8_t num,uint8_t *dat);
void LCD1602_Write_Number(uint8_t com,uint16_t num);

在主函数中调用:
在这里插入图片描述
将程序下载到开发板,效果如下:
在这里插入图片描述

3、LCD1602四线驱动

驱动原理图如下:
在这里插入图片描述

具体的驱动方式跟上面的差不多,这里不继续介绍,仅仅放下代码:

lcd1602-4.c

#include "LCD1602-4.h"
//#include "LCD1602.h"

#define DAT 1
#define CMD 0

void LCD1602_Write_Cmd(uint8_t Cmd)
{ //写指令
	GPIOA->ODR = (Cmd|0x0f)&0xf4;
	HAL_Delay(1);
	GPIOA->ODR = Cmd&0x00;
	HAL_Delay(1);
	GPIOA->ODR = ((Cmd<<4)|0x0f)&0xf4;
	HAL_Delay(1);
	GPIOA->ODR = Cmd&0x00;
	HAL_Delay(1);
}
void LCD1602_Write_Data(uint8_t Data)
{ //写数据
	GPIOA->ODR = (Data|0x0f)&0xf5;
	HAL_Delay(1);
	GPIOA->ODR = Data&0x01;
	HAL_Delay(1);
	GPIOA->ODR = ((Data<<4)|0x0f)&0xf5;
	HAL_Delay(1);
	GPIOA->ODR = Data&0x01;
	HAL_Delay(1);
}
void LCD1602_Write_Cmd_Data(uint8_t cmd,uint8_t data)
{

	if(cmd)//1
		LCD1602_Write_Data(data);
	else
		LCD1602_Write_Cmd(data);
}
void LCD1602_Write_Init(void){

	LCD1602_Write_Cmd_Data(CMD,0x33); //设置显示模式
	LCD1602_Write_Cmd_Data(CMD,0X32); //设置为4位数据线 0x38设置为8位数据
	LCD1602_Write_Cmd_Data(CMD,0X28); //设置4位数据初始化 5*7点阵 2行显示
	LCD1602_Write_Cmd_Data(CMD,0X06); //显示模式为地址加以 字符不移动
	LCD1602_Write_Cmd_Data(CMD,0X0C); //设置开启总显示不显示光标,光标不闪烁你、
	LCD1602_Write_Cmd_Data(CMD,0X01); //清屏幕指令
}
void LCD1602_Write_Worde(uint8_t addr,uint8_t Num,uint8_t *data)
{

	LCD1602_Write_Cmd_Data(CMD,addr);

	for(uint8_t i=0;i<Num;i++)
	{ 
		LCD1602_Write_Cmd_Data(DAT,*data++);
	}
}
void LCD1602_Write_Number(uint8_t addr,uint8_t Num)
{ 
	uint8_t numcode[]={"0123456789"};

	LCD1602_Write_Cmd_Data(CMD,addr);

	LCD1602_Write_Cmd_Data(DAT,numcode[Num/100]);    
	LCD1602_Write_Cmd_Data(DAT,numcode[Num%100/10]);
	LCD1602_Write_Cmd_Data(DAT,numcode[Num%100%10]);
}

lcd1602-4.h

#include "main.h"

void LCD1602_UserConfig(void);
void LCD1602_Write_Init(void);
void LCD1602_Write_Worde(uint8_t addr,uint8_t Num,uint8_t *data);
void LCD1602_Write_Number(uint8_t addr,uint8_t Num);

4、LCD12864驱动原理

常见原理图,数据手册我也上传到gitee了 12864数据手册
在这里插入图片描述

这个其实跟1602差不多,就是点数多了,有了128*64个,同时他还带中文字库,内置 8192 个中文汉字(16X16 点阵)、128个字符(8X16 点阵)及 64X256 点阵显示 RAM(GDRAM)。

引脚说明:
在这里插入图片描述

5、LCD12864并行驱动

相比1602,配置上只多了一个引脚,但其实这个引脚是来控制是并行还是串行的
在这里插入图片描述

从官方数据手册可以获得他的时序图如下所示:
在这里插入图片描述
然后写的话也是分为写命令和写字节,真的差不太多
在这里插入图片描述
其他命令
在这里插入图片描述
完整代码如下所示:

#include "LCD12864.h"
#include "LCD1602.h"


void LCD12864_Write_Cmd_Data(uint8_t cmd,uint8_t data)
{
	if(cmd) RS_HIGH; //data
	else RS_LOW; // cmd

	RW_LOW;
	EN_LOW;

	GPIOA->ODR = data;
	HAL_Delay(5);
	EN_HIGH;
	HAL_Delay(5);
	EN_LOW;
}
void LCD12864_Write_Init(void)
{
	PS_HIGH;
	LCD12864_Write_Cmd_Data(0,0x30);
	LCD12864_Write_Cmd_Data(0,0x06);
	LCD12864_Write_Cmd_Data(0,0x0C);
	LCD12864_Write_Cmd_Data(0,0x01);
	LCD12864_Write_Cmd_Data(0,0x80);
}
void LCD12864_Write_Worde(uint8_t com,uint8_t num,uint8_t *dat)
{

	LCD12864_Write_Cmd_Data(0,com); //CMD //080 - 087 090 - 097 088 - 08F 098 09FH
	for(uint8_t i=0;i<num;i++)
	{
		LCD12864_Write_Cmd_Data(1,*dat++); // 1 DATA RS=1;
	}
}
void LCD12864_Write_Number(uint8_t com,uint16_t num)
{

	uint8_t number[]={"0123456789"};

	LCD12864_Write_Cmd_Data(0,com);

	LCD12864_Write_Cmd_Data(1,number[num/1000]);     // 1
	LCD12864_Write_Cmd_Data(1,number[num%1000/100]); // 3
	LCD12864_Write_Cmd_Data(1,number[num%100/10]); 	 // 1
	LCD12864_Write_Cmd_Data(1,number[num%100%10]);   // 4
}

之后在主函数中加入下面内容就可以显示了
在这里插入图片描述
将程序下载到开发板并接好线,就可以看到下面的现象了
在这里插入图片描述

6、LCD12864串行驱动

那就还是和12864一样的,这个就也可以串行的,就不需要那些那么多线了,这真是高情商的操作啊,接线的时候可把我痛苦死了!!!

根据数据手册上提供的,这个串行的时候的驱动时序如下所示:
在这里插入图片描述
根据上图对应的原理图上的引脚如下所示:
在这里插入图片描述

串行数据传送共分三个字节完成:

  • 第一字节:串口控制—格式 11111ABC

A 为数据传送方向控制:H 表示数据从 LCD 到 MCU,L 表示数据从 MCU 到 LCD
B 为数据类型选择:H 表示数据是显示数据,L 表示数据是控制指令
C 固定为 0

  • 第二字节:(并行)8 位数据的高 4 位—格式 DDDD0000
  • 第三字节:(并行)8 位数据的低 4 位—格式 0000DDDD

lcd12864-4.c

#include "LCD12864-4.h"

#define CMD 0XF8
#define DATA 0XFA

void LCD12864_4_Write_Byte(uint8_t data)
{
	CS0_HIGH;
	for(uint8_t i=0;i<8;i++)
	{
		if((data<<i)&0x80) SID_HIGH;
		else SID_LOW;

		CLK_LOW;
		CLK_HIGH;
	}
	CS0_LOW;
}
void LCD12864_4_Write_Cmd_Data(uint8_t cmd,uint8_t data)
{
	LCD12864_4_Write_Byte(cmd); 
	LCD12864_4_Write_Byte(data&0xf0);
	LCD12864_4_Write_Byte((data<<4)&0xf0);
	HAL_Delay(1);
}
void LCD12864_4_Write_Init(void)
{
	PSB_LOW;
	LCD12864_4_Write_Cmd_Data(CMD,0x30);
	HAL_Delay(1);
	LCD12864_4_Write_Cmd_Data(CMD,0x30);
	HAL_Delay(1);
	LCD12864_4_Write_Cmd_Data(CMD,0x30);
	HAL_Delay(1);
	LCD12864_4_Write_Cmd_Data(CMD,0x06);
	LCD12864_4_Write_Cmd_Data(CMD,0x0C);
	LCD12864_4_Write_Cmd_Data(CMD,0x01);
	LCD12864_4_Write_Cmd_Data(CMD,0x80);
}
void LCD12864_4_Write_Worde(uint8_t com,uint8_t num,uint8_t *dat)
{
	LCD12864_4_Write_Cmd_Data(CMD,com); 
	for(uint8_t i=0;i<num;i++)
	{
		LCD12864_4_Write_Cmd_Data(DATA,*dat++);
	}
}
void LCD12864_4_Write_Number(uint8_t com,uint16_t num)
{
	uint8_t number[]={"0123456789"};

	LCD12864_4_Write_Cmd_Data(CMD,com);

	LCD12864_4_Write_Cmd_Data(DATA,number[num/1000]);     
	LCD12864_4_Write_Cmd_Data(DATA,number[num%1000/100]); 
	LCD12864_4_Write_Cmd_Data(DATA,number[num%100/10]);   
	LCD12864_4_Write_Cmd_Data(DATA,number[num%100%10]);   
}

lcd12864-4.h

#include "main.h"

#define CS0_HIGH  HAL_GPIO_WritePin(CS0_GPIO_Port, CS0_Pin, GPIO_PIN_SET)
#define CS0_LOW  HAL_GPIO_WritePin(CS0_GPIO_Port, CS0_Pin, GPIO_PIN_RESET)
#define SID_HIGH  HAL_GPIO_WritePin(SID_GPIO_Port, SID_Pin, GPIO_PIN_SET)
#define SID_LOW  HAL_GPIO_WritePin(SID_GPIO_Port, SID_Pin, GPIO_PIN_RESET)
#define CLK_HIGH  HAL_GPIO_WritePin(CLK_GPIO_Port, CLK_Pin, GPIO_PIN_SET)
#define CLK_LOW  HAL_GPIO_WritePin(CLK_GPIO_Port, CLK_Pin, GPIO_PIN_RESET)
#define PSB_HIGH  HAL_GPIO_WritePin(PSB_GPIO_Port, PSB_Pin, GPIO_PIN_SET)
#define PSB_LOW  HAL_GPIO_WritePin(PSB_GPIO_Port, PSB_Pin, GPIO_PIN_RESET)

void LCD12864_4_UserConfig(void);
void LCD12864_4_Write_Init(void);
void LCD12864_4_Write_Worde(uint8_t com,uint8_t num,uint8_t *dat);
void LCD12864_4_Write_Number(uint8_t com,uint16_t num);

将程序下载到开发板,效果如下:
在这里插入图片描述

7、LCD12864取模图片显示

添加画图函数和清屏函数

void LCD12864_Write_BMP(uint8_t *dat){

	for(uint8_t i=0;i<32;i++)
	{
		LCD12864_4_Write_Cmd_Data(CMD,0x80|i);
		LCD12864_4_Write_Cmd_Data(CMD,0x80);
		for(uint8_t i=0;i<16;i++)
		{
			LCD12864_4_Write_Cmd_Data(DATA,*dat++);
		}
	}
	for(uint8_t i=0;i<32;i++)
	{
		LCD12864_4_Write_Cmd_Data(CMD,0x80|i);
		LCD12864_4_Write_Cmd_Data(CMD,0x88);
		for(uint8_t i=0;i<16;i++)
		{
			LCD12864_4_Write_Cmd_Data(DATA,*dat++);
		}
	}
}
void LCD12864_Write_cle(void)
{
	for(uint8_t i=0;i<32;i++)
	{
		LCD12864_4_Write_Cmd_Data(CMD,0x80|i);
		LCD12864_4_Write_Cmd_Data(CMD,0x80);
		for(uint8_t i=0;i<16;i++)
		{
			LCD12864_4_Write_Cmd_Data(DATA,0x00);
		}
	}
	for(uint8_t i=0;i<32;i++)
	{
		LCD12864_4_Write_Cmd_Data(CMD,0x80|i);
		LCD12864_4_Write_Cmd_Data(CMD,0x88);
		for(uint8_t i=0;i<16;i++)
		{
			LCD12864_4_Write_Cmd_Data(DATA,0x00);
		}
	}
}

之后是图片取模设置,使用image2Lcd小工具调整图片大小和设置灰度输出,并保存为bmp格式
在这里插入图片描述
之后在使用字模提取软件:
在这里插入图片描述
打开我们上面转换好的图片
在这里插入图片描述
取模方式选择C51格式,将自动输出我们需要的字符集合
在这里插入图片描述
同时注意下参数设置这里:
在这里插入图片描述
取模结果如下所示

uint8_t code[]={
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x80,0x03,0xBE,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x0B,0xF0,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x03,0xE0,0x00,0x40,0x00,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x1E,0x00,0x01,0xC0,0x00,0xF8,0x01,0xE0,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0xE0,0x00,0x01,0x90,0x00,0xC0,0x00,0x1C,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x03,0x81,0x80,0x04,0x00,0x00,0xC0,0x00,0x07,0x80,0x00,0x00,0x00,
	0x00,0x00,0x00,0x0C,0x19,0x98,0x00,0x00,0x00,0x00,0x03,0xC0,0xE0,0x00,0x00,0x00,
	0x00,0x00,0x00,0x30,0x0C,0x80,0x00,0x00,0x00,0x00,0x03,0x80,0x38,0x00,0x00,0x00,
	0x00,0x00,0x00,0xC0,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x0C,0x00,0x00,0x00,
	0x00,0x00,0x03,0x80,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,
	0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,
	0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,
	0x00,0x00,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,
	0x00,0x00,0x63,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x18,0x00,0x00,
	0x00,0x00,0xC1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0xCC,0x00,0x00,
	0x00,0x00,0xC0,0x9C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x72,0x06,0x00,0x00,
	0x00,0x01,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,
	0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
	0x00,0x02,0x00,0x00,0x00,0x00,0x21,0x00,0x02,0x10,0x00,0x00,0x00,0x01,0x80,0x00,
	0x00,0x06,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x00,0x01,0x80,0x00,
	0x00,0x06,0x00,0x00,0x49,0x00,0x00,0x63,0x18,0x48,0x92,0x4C,0x00,0x00,0x80,0x00,
	0x00,0x04,0x00,0x00,0xB6,0x49,0x33,0x8C,0x67,0x32,0x6D,0xB6,0x00,0x00,0xC0,0x00,
	0x00,0x0E,0x40,0x90,0xB6,0x49,0x33,0x8C,0x63,0x32,0x4D,0xB4,0x24,0x09,0xC0,0x00,
	0x00,0x0C,0x92,0x49,0xB6,0xD9,0x33,0x9C,0xE7,0xB3,0x6D,0xB6,0x49,0x24,0xC0,0x00,
	0x00,0x0D,0xB2,0x6D,0xB6,0x49,0x33,0x8C,0x63,0x32,0x4D,0xB6,0xD9,0x36,0xC0,0x00,
	0x00,0x0D,0xB3,0x6D,0xB6,0x49,0x33,0x8C,0x63,0x32,0x4D,0xB6,0xDB,0xB6,0xC0,0x00,
	0x00,0x0C,0x92,0x4D,0xB6,0xDB,0xB3,0x9C,0xE7,0xB3,0x6D,0xB6,0x49,0x24,0xC0,0x00,
	0x00,0x0C,0x92,0x6D,0x80,0x00,0x21,0x08,0x43,0x10,0x00,0x02,0xC9,0x26,0xC0,0x00,
	0x00,0x07,0xB3,0x6D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xD9,0x36,0xC0,0x00,
	0x00,0x06,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x12,0x48,0x00,0x01,0x80,0x00,
	0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x63,0x18,0x00,0x00,0x00,0x00,0x01,0x80,0x00,
	0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
	0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
	0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,
	0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,
	0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,
	0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x00,0x00,
	0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,
	0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,
	0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,
	0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
	0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,
	0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,
	0x00,0x00,0x00,0x0E,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,
	0x00,0x00,0x00,0x03,0x80,0x02,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x70,0x00,0x60,0x00,0x00,0x04,0x00,0x38,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x02,0x01,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

之后就可以在主函数中进行初始化了:
在这里插入图片描述
之后我又取了三张图片,进行轮流显示,下载到开发板后效果如下:
在这里插入图片描述

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

桃成蹊2.0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值