複数の環境やLCDで動作させることを想定し,関数ポインタを用いてフォント読み込みや描画を行うことでポータビリティを向上させています.
- C
- ドット描画を行う事ができる関数
- 全角・半角のフォントを読み出す事ができる関数
ドット描画に関数ポインタを使用しているので様々な液晶で動かせると思います。 ドット描画を行えない表示器の場合は,バッファを操作する関数を作成する事で代用できます.
フォントは少なくともどちらかがあれば動く為,メモリの少ないマイコンでは英字のみを使用する等が可能です.
STM32F3-DiscoveryとILI9488での動作イメージ
※左半分が割れているので表示が変になっています.
ソースコード: https://github.com/Haruroid/STM32-ILI9488-GPIO
ソースコード: https://github.com/Haruroid/GB-FONTX2-Sample
void lcdwrite(uint16_t x, uint16_t y, uint16_t col) {
ILI9488_drawRect(x, y, 1, 1, col);
}
void readZ(uint32_t off,uint32_t size,uint8_t* buf){
memcpy(buf,ZenFont+off,size);
}
void readH(uint32_t off,uint32_t size,uint8_t* buf){
memcpy(buf,HanFont+off,size);
}
void app(){
if(!HR_FONTX2_init(readH,readZ,lcdwrite))
while(1);
HR_FONTX2_writeString("日本語テスト卍English", 200, 0, 0xffff);
}半角・全角のフォント読み込み関数,描画関数を指定してwriteStringで描画を行います. SJISなので注意して下さい.
バグがあるかもしれません.報告歓迎です

