oled显示汉字字体 形状 使用

oled模块的工作原理

在这里插入图片描述
oled的上方四个接口是IIC总线 通过IIC总线可以进行数据的传输 在OLED模块背后有一个芯片叫做SSD1306 这个芯片内部有1024个字节的RAM 对应到右边的小屏幕上就有1024个字节 一个字节八个bit位 每一个bit位就对应着一个小点 我们只需要往oled的RAM上写入数据就可以显示对应的字符和图片

OLED驱动简介

在这里插入图片描述
在单片机内部开一块buffer 也是1024kb的对应着oled屏幕 相当于一块画布 然后可以调用pal库的接口对oled画线等图案

OLED初始化

在这里插入图片描述
在这里插入图片描述
初始化屏幕就是 oled屏幕内部有一个芯片 芯片有一个SA0引脚 如果接地就为0 如果接高电平就为1
SA0接地为0 从机地址为0111100 接高电平就为0111101 我们的oled芯片是接地的所以SA0传入的值为RESET (0)

#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_pal_i2c.h"
#include "stm32f10x_pal_oled.h"static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;int main(void)
{PAL_Init();//初始化iichi2c1.Init.I2Cx = I2C1;hi2c1.Init.I2C_ClockSpeed = 400000;hi2c1.Init.I2C_DutyCycle = I2C_DutyCycle_2;PAL_I2C_Init(&hi2c1);//初始化oled屏幕holed.Init.hi2c = &hi2c1;holed.Init.SA0 = RESET;PAL_OLED_Init(&holed);while(1){}
}

绘制基本形状

在这里插入图片描述
在X和Y的方向上移动光标 就是X和Y坐标同时变化
画笔和画刷
在这里插入图片描述
如要画123和一个苹果 就是先画一个矩形 画笔和画刷都设置为白色就得到一个蓝色背景的矩形
然后绘画数字123 就是用黑色的画笔 透明的画刷 (这样就不会挡住后面的背景色了) 绘画苹果也是设置黑色画笔 透明画刷
画点
在这里插入图片描述

#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_pal_i2c.h"
#include "stm32f10x_pal_oled.h"static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;int main(void)
{PAL_Init(); //初始化iichi2c1.Init.I2Cx = I2C1;hi2c1.Init.I2C_ClockSpeed = 400000;hi2c1.Init.I2C_DutyCycle = I2C_DutyCycle_2;PAL_I2C_Init(&hi2c1);//初始化oled屏幕holed.Init.hi2c = &hi2c1;holed.Init.SA0 = RESET;PAL_OLED_Init(&holed);PAL_OLED_Clear(&holed);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,3);PAL_OLED_SetCursor(&holed,29,32);PAL_OLED_DrawDot(&holed);uint32_t i;for(i=1;i<8;i++){PAL_OLED_MoveCursorX(&holed,10);PAL_OLED_DrawDot(&holed);}PAL_OLED_SendBuffer(&holed);while(1){}
}

画线
在这里插入图片描述

#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_pal_i2c.h"
#include "stm32f10x_pal_oled.h"static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;int main(void)
{PAL_Init(); //初始化iichi2c1.Init.I2Cx = I2C1;hi2c1.Init.I2C_ClockSpeed = 400000;hi2c1.Init.I2C_DutyCycle = I2C_DutyCycle_2;PAL_I2C_Init(&hi2c1);//初始化oled屏幕holed.Init.hi2c = &hi2c1;holed.Init.SA0 = RESET;PAL_OLED_Init(&holed);//	PAL_OLED_Clear(&holed);
//	PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,3);
//	PAL_OLED_SetCursor(&holed,29,32);
//	PAL_OLED_DrawDot(&holed);
//	uint32_t i;
//	
//	for(i=1;i<8;i++)
//	{
//		PAL_OLED_MoveCursorX(&holed,10);
//		PAL_OLED_DrawDot(&holed);
//	}
//	
//	 PAL_OLED_SendBuffer(&holed);PAL_OLED_Clear(&holed);PAL_OLED_SetCursor(&holed,17,20);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,1);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_MoveCursorY(&holed,8);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,2);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_MoveCursorY(&holed,8);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,3);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_MoveCursorY(&holed,8);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,4);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_SendBuffer(&holed);while(1){}
}
#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_pal_i2c.h"
#include "stm32f10x_pal_oled.h"static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;int main(void)
{PAL_Init(); //初始化iichi2c1.Init.I2Cx = I2C1;hi2c1.Init.I2C_ClockSpeed = 400000;hi2c1.Init.I2C_DutyCycle = I2C_DutyCycle_2;PAL_I2C_Init(&hi2c1);//初始化oled屏幕holed.Init.hi2c = &hi2c1;holed.Init.SA0 = RESET;PAL_OLED_Init(&holed);//	PAL_OLED_Clear(&holed);
//	PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,3);
//	PAL_OLED_SetCursor(&holed,29,32);
//	PAL_OLED_DrawDot(&holed);
//	uint32_t i;
//	
//	for(i=1;i<8;i++)
//	{
//		PAL_OLED_MoveCursorX(&holed,10);
//		PAL_OLED_DrawDot(&holed);
//	}
//	
//	 PAL_OLED_SendBuffer(&holed);PAL_OLED_Clear(&holed);PAL_OLED_SetCursor(&holed,17,20);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,1);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_MoveCursorY(&holed,8);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,2);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_MoveCursorY(&holed,8);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,3);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_MoveCursorY(&holed,8);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,4);PAL_OLED_DrawLine(&holed,PAL_OLED_GetCursorX(&holed) + 45,PAL_OLED_GetCursorY(&holed));PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE,1);PAL_OLED_SetCursor(&holed,91,10);PAL_OLED_LineTo(&holed,87,24);PAL_OLED_LineTo(&holed,72,24);PAL_OLED_LineTo(&holed,84,33);PAL_OLED_LineTo(&holed,80,48);PAL_OLED_LineTo(&holed,91,38);PAL_OLED_LineTo(&holed,101,48);PAL_OLED_LineTo(&holed,97,33);PAL_OLED_LineTo(&holed,110,24);PAL_OLED_LineTo(&holed,95,24);PAL_OLED_LineTo(&holed,91,10);PAL_OLED_SendBuffer(&holed);while(1){}
}

画矩形和画圆

#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_pal_i2c.h"
#include "stm32f10x_pal_oled.h"static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;int main(void)
{PAL_Init(); //初始化iichi2c1.Init.I2Cx = I2C1;hi2c1.Init.I2C_ClockSpeed = 400000;hi2c1.Init.I2C_DutyCycle = I2C_DutyCycle_2;PAL_I2C_Init(&hi2c1);//初始化oled屏幕holed.Init.hi2c = &hi2c1;holed.Init.SA0 = RESET;PAL_OLED_Init(&holed);PAL_OLED_Clear(&holed);PAL_OLED_SetCursor(&holed,0,0);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE ,1);PAL_OLED_SetBrush(&holed,BRUSH_WHITE);//设置背景颜色PAL_OLED_DrawRect(&holed,PAL_OLED_GetScreenWidth(&holed),PAL_OLED_GetScreenHeight(&holed));PAL_OLED_SetPen(&holed,OLED_COLOR_BLACK ,1);PAL_OLED_SetBrush(&holed,BRUSH_TRANSPARENT);PAL_OLED_SetCursor(&holed,20,20);PAL_OLED_DrawRect(&holed,40,20);PAL_OLED_SetPen(&holed,OLED_COLOR_TRANSPARENT ,1);PAL_OLED_SetBrush(&holed,BRUSH_BLACK);PAL_OLED_SetCursor(&holed,70,20);PAL_OLED_DrawRect(&holed,40,20);  PAL_OLED_SetPen(&holed,OLED_COLOR_TRANSPARENT ,1);PAL_OLED_SetBrush(&holed,BRUSH_BLACK);PAL_OLED_SetCursor(&holed,65,30);PAL_OLED_DrawCircle(&holed,5);PAL_OLED_SendBuffer(&holed);while(1){}
}

显示文字

基本字符的显示
在这里插入图片描述

		PAL_OLED_Clear(&holed);PAL_OLED_SetCursor(&holed,5,20);PAL_OLED_SetPen(&holed,OLED_COLOR_WHITE ,1);PAL_OLED_SetBrush(&holed,BRUSH_TRANSPARENT); PAL_OLED_DrawString(&holed,"Hello World");PAL_OLED_SetCursor(&holed,5,30);PAL_OLED_Printf(&holed,"Today is %02d/%02d/%02d",23,12,26);PAL_OLED_SendBuffer(&holed);

文本框功能

在这里插入图片描述
在这里插入图片描述
改变字体
在这里插入图片描述
1.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制粘贴到front文件夹
在这里插入图片描述

调出命令行
在这里插入图片描述
![!](https://img-blog.csdnimg.cn/direct/99a9651da639450bb049205d66a97820.png)
输入字体的文件名 在font后面输入完整的文件名(对应字体的文件名)按回车
生成一个头文件
在这里插入图片描述
引用头文件
在这里插入图片描述

#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_pal_i2c.h"
#include "stm32f10x_pal_oled.h"
#include "_freetype_stliti_medium_r_normal__28_200_100_100_p_230_iso10646_1.h"static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;int main(void)
{PAL_Init(); //初始化iic hi2c1.Init.I2Cx = I2C1;hi2c1.Init.I2C_ClockSpeed = 400000;hi2c1.Init.I2C_DutyCycle = I2C_DutyCycle_2;PAL_I2C_Init(&hi2c1);//初始化oled屏幕holed.Init.hi2c = &hi2c1;holed.Init.SA0 = RESET;PAL_OLED_Init(&holed);PAL_OLED_Clear(&holed);PAL_OLED_SetFont(&holed,&_freetype_stliti_medium_r_normal__28_200_100_100_p_230_iso10646_1);PAL_OLED_SetCursor(&holed,(PAL_OLED_GetScreenWidth(&holed) - PAL_OLED_GetStrWidth(&holed,"不吃牛肉")) /2,40);PAL_OLED_DrawString(&holed,"不吃牛肉");PAL_OLED_SetFont(&holed,&default_font);PAL_OLED_SetCursor(&holed,(PAL_OLED_GetScreenWidth(&holed) - PAL_OLED_GetStrWidth(&holed,"Hello World"))/2,60);PAL_OLED_DrawString(&holed,"Hello World");PAL_OLED_SendBuffer(&holed);while(1){}
}

显示图像

在这里插入图片描述

进入网站 把图片转化为二进制 就可以输出图片
https://javl.github.io/image2cpp/ (网站地址)
选择图片
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
声明一个数组用来缓存二进制

#include "stm32f10x.h"
#include "stm32f10x_pal.h"
#include "stm32f10x_pal_i2c.h"
#include "stm32f10x_pal_oled.h"static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;static  const uint8_t image[] = {// 'huaqiang', 128x64px
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xf3, 0xff, 0xff, 0xf8, 0x9f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
0xe5, 0xff, 0xff, 0xf8, 0x1f, 0x9f, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 
0xf1, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xc0, 
0xe0, 0x3f, 0xff, 0xf8, 0x3f, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xff, 0xe2, 0x81, 
0x08, 0x0f, 0xff, 0xe0, 0x03, 0xff, 0xfd, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf3, 0xc6, 0xc0, 
0x00, 0x0f, 0xff, 0x80, 0x00, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xe7, 0x83, 0xc2, 
0x00, 0x0f, 0xfe, 0x00, 0x00, 0x3f, 0xf1, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x17, 0xcf, 0xab, 0xf0, 
0x00, 0x07, 0x0c, 0x00, 0x10, 0x3f, 0xd0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0xcf, 0xdf, 0xf7, 
0x00, 0x07, 0x04, 0x00, 0x00, 0x1c, 0x20, 0xb7, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0x9f, 0xbf, 0xfe, 
0x00, 0x07, 0xc0, 0x00, 0x00, 0x10, 0x00, 0x11, 0xff, 0xff, 0xff, 0xfc, 0x4f, 0x1e, 0x3f, 0xff, 
0x00, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x11, 0xff, 0xff, 0xff, 0xfc, 0x9f, 0x3a, 0x2f, 0xfb, 
0x00, 0x07, 0xf0, 0x00, 0x00, 0x02, 0x00, 0x01, 0xff, 0xff, 0xff, 0xec, 0x1e, 0x78, 0x0f, 0xfd, 
0x80, 0x0f, 0xf0, 0x00, 0x00, 0x02, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfd, 0x36, 0x7c, 0x03, 0x7f, 
0x84, 0x0f, 0xe0, 0x1f, 0xe0, 0x04, 0x0e, 0x07, 0xff, 0xff, 0xff, 0xfa, 0x3c, 0xf0, 0x03, 0xff, 
0x84, 0x0f, 0xec, 0x90, 0x3c, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x7c, 0xe4, 0x2b, 0xff, 
0x00, 0x07, 0xfc, 0x04, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x5c, 0xc4, 0x23, 0xff, 
0x00, 0x07, 0xc0, 0xf8, 0x00, 0x71, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xf4, 0xff, 0xac, 0x14, 0x5f, 
0x00, 0x07, 0xd0, 0x07, 0xf2, 0x06, 0x00, 0x0f, 0x03, 0x0f, 0xff, 0xac, 0x00, 0x14, 0x45, 0xff, 
0xc0, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x0f, 0xff, 0xff, 0xc8, 0x00, 0x54, 0x0c, 0x00, 
0xc0, 0x00, 0xfe, 0x01, 0x00, 0x38, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x70, 0x00, 0x50, 0x00, 0x00, 
0x30, 0x03, 0xe0, 0x00, 0x00, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x7e, 0x00, 0x32, 0x3f, 0x7c, 
0x00, 0x02, 0x38, 0x00, 0x00, 0x3e, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0x80, 0x03, 0xff, 0xf8, 
0x00, 0x07, 0xf8, 0x9f, 0xd0, 0x3e, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x43, 0xf8, 0x03, 0xff, 0xe7, 
0x80, 0x07, 0xf0, 0x1f, 0xf2, 0x04, 0xff, 0xf7, 0xff, 0xff, 0xfc, 0x20, 0xff, 0xc3, 0xff, 0x8f, 
0x40, 0x07, 0xf0, 0xbf, 0xcc, 0x1c, 0xfd, 0xf1, 0xff, 0xff, 0xfd, 0x40, 0x00, 0xe0, 0xff, 0xff, 
0x40, 0x07, 0xf1, 0x0f, 0xc6, 0x1c, 0xff, 0xd1, 0xff, 0xff, 0xfd, 0xa0, 0x40, 0x50, 0x79, 0xff, 
0x40, 0x07, 0xf9, 0x3f, 0xe4, 0x1c, 0xe0, 0x17, 0xff, 0xff, 0xff, 0xf8, 0x01, 0xf0, 0x3f, 0xff, 
0x40, 0x07, 0xf9, 0x3f, 0xe6, 0x3c, 0x87, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x0f, 0xff, 
0x58, 0x07, 0xfa, 0x90, 0x66, 0x38, 0x0f, 0x83, 0xdf, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x03, 0xff, 
0x48, 0x07, 0xfb, 0x90, 0x06, 0x38, 0x07, 0xc3, 0xbf, 0xff, 0xfe, 0x91, 0xc6, 0x00, 0xbd, 0xff, 
0x3c, 0x07, 0xfb, 0x94, 0x06, 0x78, 0x07, 0x83, 0x7f, 0xff, 0xfc, 0x00, 0x3f, 0x00, 0x38, 0x7e, 
0xbc, 0x07, 0xff, 0xc2, 0x8e, 0x7c, 0x07, 0xc7, 0xff, 0xff, 0xf8, 0x10, 0x03, 0x00, 0x30, 0x43, 
0x3c, 0x07, 0xfd, 0xc0, 0x16, 0x3c, 0x00, 0x01, 0xff, 0xff, 0xf8, 0x18, 0x00, 0x25, 0x40, 0x04, 
0x7c, 0x07, 0xf8, 0x60, 0x08, 0x3c, 0x00, 0x00, 0x7f, 0xff, 0xfc, 0x18, 0x00, 0x02, 0x10, 0x18, 
0x7e, 0x07, 0xfc, 0x3f, 0x80, 0x78, 0x08, 0x0f, 0xff, 0xff, 0xfc, 0x02, 0x00, 0x00, 0x10, 0x7b, 
0xfe, 0x1f, 0xfc, 0x00, 0x00, 0x7f, 0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x40, 0x00, 0x00, 0xfb, 
0xfc, 0x0f, 0xfc, 0x00, 0x01, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xfc, 0x00, 0x08, 0x00, 0x00, 0xfb, 
0xff, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x01, 0x80, 0x00, 0xfb, 
0xff, 0xff, 0xf8, 0x00, 0x02, 0x7f, 0xe4, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xfb, 
0xff, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xc0, 0x7f, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0xe0, 0x00, 
0xff, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x07, 0xe0, 
0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 
0xff, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 
0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x00, 0x00, 0x00, 
0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x01, 0x00, 0x00, 
0xff, 0xff, 0xff, 0x80, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x40, 0x00, 0x01, 0x80, 0x00, 
0xff, 0xff, 0xff, 0xe0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x60, 0x00, 0x01, 0x00, 0x00, 
0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xe0, 0x00, 0x01, 0x00, 0x00, 
0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfe, 0xc0, 0x00, 0x01, 0x00, 0x00, 
0xff, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0, 0x00, 0x01, 0x80, 0x00, 
0xff, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0c, 0x01, 0x80, 0x00, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0f, 0x81, 0x80, 0x00, 
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40, 0x0f, 0xe1, 0x80, 0x00};
static PalI2C_HandleTypeDef hi2c1;
static PalOled_HandleTypeDef holed;int main(void)
{PAL_Init(); //初始化iic hi2c1.Init.I2Cx = I2C1;hi2c1.Init.I2C_ClockSpeed = 400000;hi2c1.Init.I2C_DutyCycle = I2C_DutyCycle_2;PAL_I2C_Init(&hi2c1);//初始化oled屏幕holed.Init.hi2c = &hi2c1;holed.Init.SA0 = RESET;PAL_OLED_Init(&holed);//生成图片PAL_OLED_Clear(&holed);PAL_OLED_SetPen(&holed,PEN_COLOR_WHITE,1);PAL_OLED_SetBrush(&holed,BRUSH_BLACK);PAL_OLED_SetCursor(&holed,0,0);PAL_OLED_DrawBitmap(&holed,128,64,image);PAL_OLED_SendBuffer(&holed);while(1){}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/305768.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HPM6750开发笔记《第一个helloworld例程》

HPM_SDK的使用&#xff1a; HPM_SDK界面如下图 此处选择所支持的5款evk大家根据自己的板子选 此处选择想看的例程工程 此处可选择生成工程的类型 其中debug工程是在纯RAM中运行的&#xff0c;板子掉电后代码会被删除&#xff0c;用来测试比较合适 其中挂flash的工程有两种其中…

探讨压测工具在不同领域中的应用

随着信息技术的飞速发展&#xff0c;各行各业的应用系统正变得日益复杂和庞大。在这个背景下&#xff0c;保障系统的性能和稳定性成为了至关重要的任务。压力测试&#xff0c;作为一种验证系统在各种条件下性能表现的手段&#xff0c;逐渐成为了不可或缺的环节。本文将探讨压测…

在线教育系统源码解读:定制化企业培训APP的开发策略

当下&#xff0c;企业培训正经历着一场数字化的迭代&#xff0c;定制化企业培训APP应运而生&#xff0c;成为提升员工技能、推动企业发展的重要工具。下文小编将与大家一同深入了解在线教育系统的源码&#xff0c;探讨开发定制化企业培训APP的策略&#xff0c;以满足不同企业的…

基于鸿蒙OS开发一个前端应用

创建JS工程&#xff1a;做鸿蒙应用开发到底学习些啥&#xff1f; 若首次打开DevEco Studio&#xff0c;请点击Create Project创建工程。如果已经打开了一个工程&#xff0c;请在菜单栏选择File > New > Create Project来创建一个新工程。选择HarmonyOS模板库&#xff0c…

Windows搭建RTMP视频流服务(Nginx服务器版)

文章目录 引言1、安装FFmpeg2、安装Nginx服务器3、实现本地视频推流服务4、使用VLC或PotPlayer可视化播放器播放视频5、RTSP / RTMP系列文章 引言 RTSP和RTMP视频流的区别 RTSP &#xff08;Real-Time Streaming Protocol&#xff09;实时流媒体协议。 RTSP定义流格式&#xff…

云手机引领社交平台运营新潮流

在网络高度发展的今天&#xff0c;社交平台已经成为企业宣传推广的关键渠道之一。传统的社交运营方式已经无法满足效率的要求&#xff0c;云手机因而开始引领社交平台运营的新潮流。本文将深入探讨云手机如何重新定义社交平台运营&#xff0c;为用户和企业带来更为便捷、智能的…

六、Redis 分布式系统

六、Redis 分布式系统 六、Redis 分布式系统6.1 数据分区算法6.1.1 顺序分区6.1.2 哈希分区 6.2 系统搭建与运行6.2.1 系统搭建6.2.2 系统启动与关闭 6.3 集群操作6.3.1 连接集群6.3.2 写入数据6.3.3 集群查询6.3.4 故障转移6.3.5 集群扩容6.3.6 集群收缩 6.4 分布式系统的限制…

2022年第十三届中国数据库技术大会(DTCC2022)-核心PPT资料下载

一、峰会简介 本届大会以“数据智能 价值创新”为主题&#xff0c;设置2大主会场&#xff0c;20技术专场&#xff0c;邀请超百位行业专家&#xff0c;重点围绕时序数据库、图数据技术、实时数仓技术与应用实践、云原生数据库、大数据平台与数据安全等内容展开分享和探讨&#…

群晖Synology Office如何多人同时远程编辑同个文件

文章目录 本教程解决的问题是&#xff1a;1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 本教程解决的问题是&#xff1a; 1.Word&#xff0c;PPT&#xff0c;Excel等重要文件存在本地环境&#xff0c;如何在编…

删除数据后, redis 内存占用还是很高怎么办?

现象&#xff1a; reids 做了数据删除&#xff0c;数据量不大&#xff0c;使用 top 命令看&#xff0c;发现还是占用大量内存 原因&#xff1a; 1.redis 底层内存根据内存分配器分配&#xff0c;不会立刻释放 2.redis 释放的内存空间不是连续的&#xff0c;存在碎片 内存碎…

15 Sequence-Driver-Sequencer communication in UVM

我们分别讨论了sequece_item、sequence、sequencer和driver。在本节中&#xff0c;我们将讨论他们如何相互talk&#xff0c;sequencer如何给driver提供从sequence里的sequence item。在开始阅读本节之前&#xff0c;请确保您了解sequencer和driver中使用的所有方法。&#xff0…

统信UOS linux下opencv应用编译时的头文件和库文件路径查找设置方法

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 老猿原来进行的C和C开发主要是基于windows环境的&#xff0c;目前要在统信UOS操作系统环境下编译opencv应用程序&#xff0c;其环境设置与windows环境下变化很多&#xff0c;今天就来介绍一下在统…