如何在OLED 128x32 SSD1306中显示字体8x12

时间:2019-02-28 10:59:21

标签: c++ msp430

我在使用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);
}

有人可以帮助我吗?

0 个答案:

没有答案