OLED显示代码,输入行列来确定中文显示的位置
void OLED_ShowCHinese(uint16_t Y,uint16_t X,uint16_t no)
{
u8 t;
OLED_SetCursor((Y-1)*2, (X-1)*16);
for(t=0;t<16;t++)
{
OLED_WriteData(OLED_F8x32[2*no][t]);
}
OLED_SetCursor((Y-1)*2+1, (X-1)*16);
for(t=0;t<16;t++)
{
OLED_WriteData(OLED_F8x32[2*no+1][t]);
}
}
这是定位到行列位置代码
void OLED_SetCursor(uint8_t Y, uint8_t X)
{
OLED_WriteCommand(0xB0 | Y); //设置Y位置
OLED_WriteCommand(0x10 | ((X & 0xF0) >> 4)); //设置X位置高4位
OLED_WriteCommand(0x00 | (X & 0x0F)); //设置X位置低4位
}
写入数据代码
void OLED_WriteData(uint8_t Data)
{
OLED_I2C_Start();
OLED_I2C_SendByte(0x78); //从机地址
OLED_I2C_SendByte(0x40); //写数据
OLED_I2C_SendByte(Data);
OLED_I2C_Stop();
}
OLED字体库里存放代码的形式
const uint8_t OLED_F8x32[][32]={
{0x10,0x10,0x14,0xD4,0x54,0x54,0x54,0xFC,0x52,0x52,0x52,0xD3,0x12,0x10,0x10,0x00},
{0x40,0x40,0x50,0x57,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x57,0x50,0x40,0x40,0x00},/*"重", {0x20,0x20,0x20,0xBE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBE,0x20,0x20,0x20,0x00}, {0x00,0x80,0x80,0xAF,0xAA,0xAA,0xAA,0xFF,0xAA,0xAA,0xAA,0xAF,0x80,0x80,0x00,0x00},/*"量",
};
取模软件格式如下: