как показать шрифт 8x12 в OLED 128x32 SSD1306 - PullRequest
0 голосов
/ 28 февраля 2019

У меня возникли проблемы с OLED 128x32 SSD1306, мне нужно загрузить шрифт другого размера.Итак, у меня есть файл "fonts.h", где мой шрифт объявлен следующим образом:

unsigned char mediumFont[]={0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x00,0x3C};

Это вызывается из функции, где я пытаюсь представить на старом экране текущий шрифт в формате 8x12pixels.

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);
}

кто-нибудь может мне помочь?

...