我在使用OLED 128x32 SSD1306时遇到了一些问题,我需要加载其他尺寸的字体。因此,我有一个文件“ fonts.h”,其中以这种方式声明了我的字体:
unsigned char mediumFont[]={0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x00,0x3C};
从一个函数中调用该函数,我尝试在旧屏幕上以8x12像素格式表示当前字体。
void charDraw(char row, char column, char data, int sizeFont){
char h, ci;
uint8_t i;
if (row > SSD1306_MAXROWS){
row = SSD1306_MAXROWS;
}
if (column > SSD1306_LCDWIDTH){
column = SSD1306_LCDWIDTH;
}
if (data < 32 || data > 129 ){
data = '.';
}
ci = data-32;
if(column >120){
row+= 2;
if(row > 6){
row = 6;
}
}
setAddress(row, column);
for(i = 0; i < 8; i++){
SSD1306SendData((char *)&mediumFont[ci+16+i], fontWidth_1);
printf("hex:%x\n",&mediumFont[ci]);
}
setAddress(column,row+1);
for(i = 0; i < 8; i++){
SSD1306SendData((char *)&mediumFont[ci], fontWidth_1);
}
setAddress(column+8,row-1);
}
有人可以帮助我吗?