介绍

我使用的OLED屏的驱动芯片为SH1108,该芯片可驱动的最大点阵范围为160 COM× 160 SEG,我这款屏为128 COM× 160 SEG,该屏幕有128 个column与20 个Page,每Page有8 Seg即一共160 Seg,我这里采用的是页面寻址模式;
字符和数字、汉字占用的像素点如下:

1.利用STM32CubeMX初始化IIC

2.写命令和写数据函数封装

#define OLEDDevAddress 0x78        //IIC从地址
#define OLEDMemAddress_Com 0x00    //写命令内存地址
#define OLEDMemAddress_Dat 0x40    //写数据内存地址
void OLED_WriteCommand(unsigned char I2C_Command)  //写命令
{HAL_I2C_Mem_Write(&hi2c1, OLEDDevAddress, OLEDMemAddress_Com, I2C_MEMADD_SIZE_8BIT, &I2C_Command, 1, 100);
}void OLED_WriteData(unsigned char I2C_Data)      //写数据
{HAL_I2C_Mem_Write(&hi2c1, OLEDDevAddress, OLEDMemAddress_Dat, I2C_MEMADD_SIZE_8BIT, &I2C_Data, 1, 100);
}

3.屏幕初始化和清屏操作

void OLED_Init() //OLED初始化
{uint8_t i = 0;uint8_t OLED_InitCommand[21] ={0xAE,           //关闭显示  Display OFF(sleep mode)0x81, 0xD0,     //设置对比度  Set Contrast Control (0x00~0xFF)0xA0,           //设置段重新映射  Set Segment Re-map0xA4,           //整屏点亮及关闭  Set Entire Display OFF/ON0xA6,           //设置正常显示及反色显示  Set Normal/Reverse Display0xA9, 0x02,     //设置分辨率  Display Resolution Control0xAD, 0x80,     //设置VCC电源  DC-DC Control Mode Set0xC0,           //设置COM输出方式  Set COM Output Scan Direction0xD5, 0x40,     //设置时钟频率  Set Display Clock Divide Ratio/Oscillator Frequency0xD9, 0x2F,     //设置充放电周期  Dis-charge/Pre-charge Period Mode Set0xDB, 0x3F,     //设置VCC电压输出水平Set VCOMH Deselect Level0x20,           //Page addressing mode0xDC, 0x35,     //VSEGM Deselect Level Mode Set0x30            //Set Discharge VSL Level};osDelay(100);for(i = 0; i < 21; i++){OLED_WriteCommand(OLED_InitCommand[i]);}
}
void OLED_CleanDDR()   //清屏操作
{uint8_t i, j;for(i = 0; i < 20; i++){OLED_WriteCommand(0xB0);OLED_WriteCommand(i);       //设置页地址 page0-page19OLED_WriteCommand(0x00);    //设置显示位置—列低地址 low column start addressOLED_WriteCommand(0x10);    //设置显示位置—列高地址 high column start addressfor(j = 0; j < 160; j++){OLED_WriteData(0x00);}}OLED_WriteCommand(0xAF);        //打开显示 Set Display ON
}

4.设置起始点坐标函数

/*设置起始点坐标*/
void OLED_SetPosition(unsigned char x, unsigned char y)
{OLED_WriteCommand(0xB0);OLED_WriteCommand(y);OLED_WriteCommand(((x & 0xF0) >> 4) | 0x10);OLED_WriteCommand( (x & 0x0F) | 0x01);
}

5.显示字符和字符串函数

/*显示字符,每个字符占8x16像素      x,y -- 起始点坐标(x:列0~159, 页y:0~7); chr  -- 要显示的字符*/
void OLED_ShowChar(uint8_t x, uint8_t y, char chr)
{uint8_t c,i = 0;c = chr-' ';OLED_SetPosition(x, y);                         //字符所占的第一页for(i=0; i<8; i++)                           //i为第一页的8个列OLED_WriteData(F8X16[c * 16 + i]);OLED_SetPosition(x, y + 1);                  //字符所占的第二页for(i=0; i<8; i++)                           //i为第二页的8个列OLED_WriteData(F8X16[c * 16 + i + 8]);   //第二页为后8个字节,所以要加8
}/*显示字符串,每个字符占8x16像素      x,y -- 起始点坐标(x:列0~159, 页y:0~7);  *str -- 要显示的字符串*/
void OLED_ShowString(uint8_t x, uint8_t y, char *str)
{while(*str != '\0'){OLED_ShowChar(x, y, *str++);x = x + 8;}
}

6.显示汉字和汉字串函数

/*显示汉字,每个汉字占16x16像素      x,y -- 起始点坐标(x:列0~159, 页y:0~7);  N -- 汉字在.h中的索引*/
void OLED_ShowChinese(uint8_t x, uint8_t y, uint8_t N)
{uint8_t i = 0;uint16_t adder = N * 32;OLED_SetPosition(x, y);                         //汉字所占的第一页for(i = 0; i < 16; i++)                      //i为第一页的16个列{OLED_WriteData(F16X16[adder]);adder++;}OLED_SetPosition(x, y + 1);                     //汉字所占的第二页for(i = 0; i < 16; i++)                      //i为第二页的16个列{OLED_WriteData(F16X16[adder]);adder++;}
}/*显示汉字字符串,每个汉字占16x16像素      x,y -- 起始点坐标(x:列0~159, 页y:0~7);  begin -- 填入的中文字符串的第一个字在.h中的索引;  num -- 我们要填写几个字*/
void OLED_ShowChineseString(uint8_t x, uint8_t y, uint8_t begin, uint8_t num)
{uint8_t i = 0;for(i = 0; i < num; i++)OLED_ShowChinese(i * 16 + x, y, i + begin);
}

7.显示图像函数

/*显示图像    x0,y0 -- 起始点坐标(x0:列0~159, 页y0:0~7);  x1,y1 -- 起点对角线(结束点)的坐标(x1:列1~160, 页y1:1~8)*/
void OLED_ShowImage(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint8_t *bmp)
{uint16_t i = 0;uint8_t x, y;for(y = y0; y < y1; y++)                //从y0页到y1页循环{OLED_SetPosition(x0, y);for(x = x0; x < x1; x++)            //每页再从x0列到x1列循环{OLED_WriteData(bmp[i++]);}}
}

8. 8*16点阵的字符字库

//8*16的点阵(字符)
const unsigned char F8X16[] =
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 00x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 10x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 20x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 30x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 40xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 50x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 60x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 70x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 80x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 90x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 100x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 110x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 120x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 130x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 140x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 150x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 160x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 170x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 180x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 190x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 200x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 210x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 220x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 230x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 240x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 250x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 260x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 270x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 280x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 290x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 300x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 310xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 320x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 330x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 340xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 350x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 360x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 370x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 380xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 390x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 400x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 410x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 420x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 430x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 440x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 450x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 460xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 470x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 480xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 490x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 500x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 510x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 520x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 530x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 540xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 550x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 560x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 570x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 580x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 590x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 600x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 610x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 620x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 630x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 640x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 650x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 660x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 670x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 680x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 690x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 700x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 710x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 720x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 730x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 740x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 750x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 760x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 770x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 780x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 790x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 800x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 810x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 820x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 830x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 840x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 850x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 860x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 870x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 880x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 890x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 900x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 910x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 920x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 930x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
};

9. 16*16点阵的汉字字库

//16*16的点阵(汉字)
const unsigned char F16X16[] =
{0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00,   //"温",00x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00,   //"度",10x10,0x60,0x02,0x8C,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x04,0x04,0x7E,0x01,0x44,0x48,0x50,0x7F,0x40,0x40,0x7F,0x50,0x48,0x44,0x40,0x00,   //"湿",20x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00,   //"度",30x00,0x00,0xFE,0x02,0x12,0x22,0xC2,0x02,0xC2,0x32,0x02,0xFE,0x00,0x00,0x00,0x00,0x80,0x60,0x1F,0x00,0x20,0x10,0x0C,0x03,0x0C,0x30,0x00,0x0F,0x30,0x40,0xF8,0x00,   //"风",40x40,0x40,0x42,0xCC,0x00,0x04,0xF4,0x94,0x94,0xFF,0x94,0x94,0xF4,0x04,0x00,0x00,0x00,0x40,0x20,0x1F,0x20,0x48,0x44,0x42,0x41,0x5F,0x41,0x42,0x44,0x48,0x40,0x00,   //"速",5};

10.图像点阵

//Logo图片点阵
const unsigned char BMP_Logo[] =
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x38,0xF8,0x38,0x08,0x00,0x00,0x00,0x00,0x00,0x84,0x8F,0x9F,0x0F,0x0E,0x00,0x20,0x00,0x00,0x80,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,0x1C,0x1E,0x3E,0x1C,0x00,0x80,0x78,0x7C,0x7C,0x78,0x31,0x00,0x00,0xE0,0xF1,0xF8,0xF8,0xF0,0xF0,0x00,0x00,0x07,0x0F,0x0F,0x0F,0x0F,0x00,0xC0,0xE0,0xE0,0xE0,0x8B,0x07,0x07,0x07,0x00,0x70,0x70,0x70,0x87,0x0F,0xE7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x3E,0x3E,0x3E,0x3C,0x00,0x00,0x40,0x00,0x82,0xA0,0x80,0xC0,0x10,0x01,0x03,0x03,0x01,0x08,0x3C,0xF8,0xE0,0x00,0xE0,0xF8,0x3C,0x0C,0x00,0x01,0x01,0x01,0x78,0xF8,0xF8,0xF8,0x70,0x10,0x00,0x08,0x00,0x0E,0x1F,0x1F,0x1F,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x01,0x00,0x00,0x03,0xFF,0xFE,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0xE0,0xF0,0xF8,0x1E,0x07,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x00,0x3F,0x3F,0x00,0x3F,0x3F,0x3F,0x3F,0x3F,0x00,0x00,0x00,0x00,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,0xB8,0x20,0x20,0xA0,0xB0,0x90,0x10,0x10,0x10,0x10,0x90,0x90,0xB0,0x00,0x00,0x30,0x10,0x90,0xD0,0x70,0x30,0x18,0xD8,0xD0,0x10,0x10,0x10,0x30,0x30,0x00,0xD8,0xD8,0xF0,0x70,0x50,0x50,0x50,0xE0,0xF0,0x10,0x10,0x10,0x10,0x90,0xF0,0x70,0xC0,0xD8,0x50,0x50,0x50,0xD0,0x58,0xD8,0x10,0x80,0xF8,0xB8,0x20,0x10,0x10,0x10,0x00,0x40,0x63,0x73,0x42,0x40,0x7A,0x1A,0x02,0x7A,0x7F,0x03,0x02,0x7A,0x42,0x02,0x00,0x0C,0x06,0x7F,0x7F,0x40,0x40,0x00,0x00,0x03,0x3F,0x7E,0x46,0x46,0x43,0x00,0x02,0x7D,0x7C,0x44,0x45,0x45,0x45,0x24,0x35,0x15,0x15,0x15,0x05,0x05,0x7D,0x3D,0x70,0x7F,0x27,0x36,0x1B,0x09,0x01,0x7F,0x3F,0x00,0x7C,0x4D,0x45,0x45,0x45,0x05,0x00,
};

11.调用以上函数显示举例

void OLED_Display_DataPage()
{OLED_ShowChineseString(20, 3, 0, 2);       //"温度"OLED_ShowChineseString(20, 6, 2, 2);       //"湿度"OLED_ShowString(25, 9, "CO2");             //"CO2"OLED_ShowChineseString(20, 12, 4, 2);      //"风速"OLED_ShowImage(70, 6, 135, 13, BMP_Logo);  //公司logo,像素为65x56
}

以上使例效果如下图显示:

取模软件

以上字符、汉字及图像点阵均使用取模软件来产生相应的段码,取模软件的下载和使用就不写了;

STM32HAL库IIC驱动SH1108芯片OLED屏相关推荐

  1. STM32F1基于正点原子HAL库IIC驱动SH1106芯片的OLED屏

    1.oled.c代码 #include "oled.h" #include "stdlib.h" #include "oledfont.h" ...

  2. STM32 HAL库IIC驱动

    1. STM32上IIC的一些争议 关于STM32的IIC驱动,网上有很多争论,究竟是使用STM32自带的硬件IIC还是用IO口和软件模拟IIC呢?下面这个图形象展示了这些争论.总结一些:ST为了规避 ...

  3. olcd12864的u8g2库_【原创】OLED屏-U8glib库 增强版 U8G2库。

    本帖最后由 alientg 于 2017-1-10 17:01 编辑 https://github.com/olikraus/u8g2/wiki/u8g2reference#begin 自己再通过测试 ...

  4. 用STM32F103达成基于I2C协议的AHT20温湿度传感器和OLED屏显示汉字

    目录 一 I2C协议简介 硬件I2C与软件I2C 二 代码和ATH20芯片实现温湿度的串口显示 三 用stm32f103芯片的SPI和IIC接口接上OLED屏显示中文姓名温湿度 1 先用文字字模生成器 ...

  5. 0.96寸 4针OLED屏模块功能实现(STM32)

    认识模块 0.96寸4针OLED屏模块是一种显示屏模块,它包括一个0.96英寸的OLED显示屏和4个引脚.这种OLED屏幕模块通常用于嵌入式系统和小型电子设备中,可以显示文本.图像和其他类型的信息.由 ...

  6. 【OLED屏】4针 OLED显示屏(IIC协议)底层驱动(库封装)(包含源文件)

    测试芯片STM32F103x(x=c8t6.zet6) 输出效果: 主程序main.c() #include "stm32f10x.h" #include "OLED_I ...

  7. arduino上ESP8266用Adafruit_SSD1306库驱动OLED屏

    关注.星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 在进行后续的ESP8266学习前,我们先来对OLED屏进行驱动,为后续学习提供直观的信息显示. 1. 安装驱动库 在之前 ...

  8. fpga驱动oled iic显示代码_Arduino提高篇02—OLED屏汉字显示

    上篇中我们已经使用驱动库在OLED屏上显示出英文字符,除去数字.字母.符号等,OLED还能显示汉字.图片及任意图形.本篇介绍取模软件的使用,教大家如何在OLED屏上显示汉字. 1. 字模显示原理及取模 ...

  9. 【开源项目介绍】STC32基于u8g2库DMA驱动IIC or SPI OLED屏幕显示

    [开源项目介绍]STC32基于u8g2库DMA驱动IIC or SPI OLED屏幕显示

  10. olcd12864的u8g2库_U8G2 软件包单色1.3寸OLED屏驱动在 RT-Thread 移植问题

    本帖最后由 XYX 于 2019-5-21 21:06 编辑 * 前提说明: U8G2 软件包单色1.3寸OLED屏驱动在 RT-Thread 移植到stm32l4r5-st-nucleo板,使用的是 ...

最新文章

  1. Git提交时提示‘The file will have its original line endings in your working directory’
  2. 存储引擎——概述|| 各种存储引擎的特性(InnoDB||MyISAM||MEMORY||MERGE) ||存储引擎的选择
  3. python print %s 号格式化输出
  4. 高等数学下-赵立军-北京大学出版社-题解-练习12.4
  5. php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
  6. wordpress不登陆后台禁用插件
  7. wordpress建立数据库连接时出错
  8. 中标麒麟高级服务器操作系统V7.6升级安装GCC-8.5.0编译工具
  9. 计算机管理USB,大势电脑至usb管理软件
  10. HEX BIN互相转换
  11. 代写品牌故事怎么写才能打动消费者
  12. 带有风的诗词_2017含有风的诗句大全
  13. Words Reciting 2016.5.4
  14. UPCOJ-5344 - 被子 - 瞎搞
  15. 阿里巴巴:入门者最常问的几个问题
  16. 支付宝618红包怎么领?怎么用?
  17. excel计算机二级考试试题,全国计算机等级考试二级officeexcel真题
  18. chrome报您的连接不是私密连接的解决办法之一一重置设置
  19. 11月云短信报告出炉,腾讯云再次蝉联到达率冠军
  20. 我通过Python给我们班写了个电子考勤系统!室友为啥孤立我了?

热门文章

  1. 算法分析与设计实验报告——实现哈夫曼编码
  2. CWMP (TR-069)技术介绍
  3. AMSim高级系统建模与仿真软件安装坡姐过程的踩坑心得
  4. express不是内部或外部命令
  5. lammps学习总结3
  6. Beego使用AdminLTE
  7. JS页面跳转页面大全
  8. TOMCAT安装指南
  9. TransCAD的选择集应用简介
  10. VUE 中使用 Element 时间控件(简单上手)