HAL库开发#07——OLED显示屏

#07——OLED显示屏

1.OLED概述

在这里插入图片描述

2.OLED开发需要的资源

在这里插入图片描述

3.移植OLED库函数

在这里插入图片描述

4.OLED库——常用函数

在这里插入图片描述
OLED初始化函数
OLED清屏函数

void OLED_Init(void);          //OLED初始化函数
void OLED_Clear(void);         //OLED清屏函数

显示英文字符串函数

//显示英文字符串函数
void OLED_ShowString(unsigned char x,unsigned char y,unsigned char *p);

参数1:x,起点列坐标,0127
参数2:y,起点行坐标,07
参数3*p,字符串指针
返回值:void,无。

显示中文字符函数

//显示中文字符函数
void OLED_ShowCHinese(unsigned char x,unsigned char y,unsigned char no);

参数1:x,起点列坐标,0127
参数2:y,起点行坐标,07
参数3:no,待显示中文字符在数组Hzk[][32]中的位置。
返回值:void,无。

显示图片函数

//显示图片函数
void OLED_DrawBMP( unsigned char x0, unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[]);

参数1:x0,起点列坐标,0127
参数2:y0,起点行坐标,07
参数3:x1,图片的列范围,1128
参数4:y1,图片的行范围,18
参数5:BMP[],待显示图片数据的数组。
返回值:void,无。

5.字模软件使用

在这里插入图片描述

6.实训

1.cubemx配置

在这里插入图片描述
2.移植oled库
在这里插入图片描述
3.准备库
在这里插入图片描述

//用取字模软件生成开机LOGO图片数据,并拷贝到XMF_OLED_BMP.h的数组中。
const unsigned char BMP1[] =
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    //此处省略64×62个字节元素
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
//用取字模软件生成所需中文字符数据,保持到XMF_OLED_Font.h中的Hzk[]数组。
const unsigned char Hzk[][32]={
{0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x20,0x40,0x80,0x00,0x00},
{0x08,0x04,0x03,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x01,0x0E,0x00},/*"小",0*/
/* (16 X 16 , 宋体 )*/
{0x10,0x4C,0x24,0x04,0xF4,0x84,0x8D,0x56,0x44,0x24,0x14,0xC4,0x24,0x54,0x0C,0x00},
{0x00,0x41,0x5D,0x55,0x54,0x55,0x55,0x7F,0x55,0x55,0x55,0x55,0x7C,0xC0,0x00,0x00},/*"蜜",1*/
/* (16 X 16 , 宋体 )*/
{0x00,0xF8,0x08,0xFF,0x08,0xF8,0x80,0x90,0x4C,0x57,0xA4,0x54,0x4C,0x84,0x80,0x00},
{0x20,0x63,0x21,0x1F,0x11,0x39,0x10,0x10,0x15,0x15,0xFF,0x15,0x15,0x10,0x10,0x00},/*"蜂",2*/
/* (16 X 16 , 宋体 )*/
{0x10,0x08,0x44,0x47,0x4C,0x54,0x44,0xD4,0x28,0x27,0x24,0x2C,0x34,0x04,0x04,0x00},
{0x00,0x10,0x12,0x12,0x12,0x12,0x12,0x7F,0x89,0x89,0x89,0x89,0x89,0x88,0xF0,0x00},/*"笔",3*/
/* (16 X 16 , 宋体 )*/
{0x40,0x40,0x42,0xCC,0x00,0x00,0x00,0x84,0x84,0x84,0x84,0x84,0xFC,0x00,0x00,0x00},
{0x00,0x00,0x00,0x7F,0x20,0x10,0x00,0x3F,0x40,0x40,0x40,0x40,0x41,0x40,0x70,0x00},/*"记",4*/
/* (16 X 16 , 宋体 )*/
{0x00,0xFE,0x02,0x22,0x42,0x82,0x72,0x02,0x22,0x42,0x82,0x72,0x02,0xFE,0x00,0x00},
{0x00,0xFF,0x10,0x08,0x06,0x01,0x0E,0x10,0x08,0x06,0x01,0x4E,0x80,0x7F,0x00,0x00},/*"网",5*/
/* (16 X 16 , 宋体 )*/
};

4.编程
在这里插入图片描述

extern unsigned char BMP1[]; 声明变量

extern unsigned char BMP1[];

void OLED_display_pic()
{
    OLED_Clear();
    OLED_DrawBMP(0,0,128,8,BMP1);
}
void OLED_display_info()
{
    OLED_Clear();
    OLED_ShowString(6,0,(uint8_t *)"www.xmf393.com");
	
    OLED_ShowCHinese(10,3,0);        //小
    OLED_ShowCHinese(28,3,1);        //蜜
    OLED_ShowCHinese(46,3,2);        //蜂
    OLED_ShowCHinese(64,3,3);        //笔
    OLED_ShowCHinese(82,3,4);        //记
    OLED_ShowCHinese(100,3,5);       //网
	
    OLED_ShowString(24,6,(uint8_t *)"2020-02-18");
}

在mian()函数中添加下面的代码:

//在mian()函数中添加下面的代码:
/* USER CODE BEGIN 2 */
OLED_Init();              //OLED初始化
OLED_display_pic();       //显示图片
HAL_Delay(500);           //延时0.5秒
OLED_display_info();      //显示信息
  /* USER CODE END 2 */

7.多位数字显示

	tem_char[1]=tem/10+'0';      //+‘0‘变为字符型--十位
	tem_char[0]=tem%10+'0';      //-’0‘变为num--个位
    OLED_ShowChar(56,3,tem_char[1]);
	OLED_ShowChar(66,3,tem_char[0]);

注:
这是我的学习笔记。
来自B站视频(av号:av87017878)
这个UP的原博客为:https://www.xmf393.com/2020/02/10/20200210/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值