0.96寸OLED图片的显示(对上一篇文章的补充)
1、在oled.c中加入图片显示函数(128X64的)
//显示128x64 BMP图片
void OLED_Draw12864BMP(uint8_t num)//其中的变量为第几张图片
{
uint16_t j=0;
uint8_t x,y;
for(y=0; y<8; y++)
{
OLED_Set_Pos(0,y);
for(x=0; x<128; x++)
{
#if DISPLAY_MODE
OLED_WR_DATA(BMP[num-1][y]);
#else
OLED_WR_DATA(BMP[num-1][j++]);
#endif
}
}
}
然后再oled.h中声明:void OLED_Draw12864BMP(uint8_t num);
2、在取字模软件中取字模
(1)、选择图形模式
(2)、设置为128*64
然后就可以画出自己想要的图案了
在生成字模后将字模复制写到oledfont.h中:
uint8_t BMP[][1024] = {
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,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,0x80,0xC0,0xC0,0xC0,0xC0,
0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xE0,0xE0,0xF0,0xF0,0xF0,0xE0,0xC0,0xE0,0xE0,0xE0,
0xC0,0xC0,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x80,0xFC,0xF8,0xFC,0x7F,0x3F,0x1F,0x0F,0x07,0x07,0x03,0x03,0x03,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,
0x03,0x07,0x0F,0x0F,0x1F,0x3F,0xFE,0xFC,0xF8,0xF8,0x70,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xB8,0xFF,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x03,0xFF,0xFF,0x30,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x3B,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x7E,0xFE,0xFC,0xF8,0xF8,0xF0,
0xF0,0xE0,0x60,0x60,0xE7,0xEF,0xEF,0xEF,0xE2,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0x60,
0x60,0x67,0x77,0x7F,0x37,0xB8,0x9C,0xDF,0xE7,0xE3,0x60,0x60,0x70,0x70,0x70,0x30,
0x30,0x70,0x70,0x70,0x60,0x60,0xE0,0xE0,0xC0,0xC0,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x81,
0x81,0xC0,0xE0,0x60,0x70,0x30,0x30,0x30,0x33,0x3F,0x3E,0x3C,0xF0,0xE0,0x80,0x00,
0x00,0x00,0xC0,0xFC,0xFE,0x0F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x07,0xFE,0xFC,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,0xC0,0xE0,0xF0,
0xF0,0xF0,0xFD,0x7F,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xFF,
0xFF,0x07,0x0B,0xCC,0xCC,0xCC,0xCE,0xCE,0xCE,0xCE,0xCE,0xCE,0xCF,0xC3,0x0F,0xFF,
0xFC,0xDF,0x3F,0x73,0x71,0x60,0x60,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0xC0,0xC0,0xC0,0xE0,0xE0,0x60,0x70,0x38,0x3C,0x1F,0x0F,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,0x07,0x0F,0x1E,
0x3C,0x38,0x74,0x70,0x60,0x60,0x60,0x60,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC3,
0xCF,0xFE,0xF8,0xF1,0xF1,0xE1,0xE1,0xE1,0xE1,0x61,0x60,0x60,0x70,0x70,0x7C,0x7F,
0x3F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0xAF,0xAF,0xB3,0xF0,0x70,0x70,0x68,
0x78,0x38,0xB8,0xAF,0xAF,0x9E,0xDC,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
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,0x02,0x02,0x02,0x02,0x03,0x03,
0x03,0x03,0x03,0x03,0x03,0x03,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},
/*这是第一幅图片,如果还需要图片直接在这后面加字模就行了*/
};
然后在main函数中
/* USER CODE BEGIN 2 */
OLED_Init();
OLED_Clear();
OLED_Draw12864BMP(2);
/* USER CODE END 2 */
就可以显示图片了
不过我相信很多人跟我一样是个手残(这个我真的是),画图出来完全是四不像,还有一种办法就是直接导入图片生成字模,但是需要128*64的BMP图片。
改变图片分辨率的网站:https://www.iloveimg.com/zh-cn
改变图片格式为BMP的网站:https://convertio.co/zh/image-converter/
然后在取字模软件中导入即可
文件中的打开或者下面那个。
如果有错误欢迎指正。