# demo-jlc_stm32f407_fontlib **Repository Path**: luyaocf/demo-jlc_stm32f407_fontlib ## Basic Information - **Project Name**: demo-jlc_stm32f407_fontlib - **Description**: 基于嘉立创天空星 STM32F407VET6 开发板,通过 SDCard 将点阵字库写入到 FLASH 芯片(这里为 W25Q64) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-08-10 - **Last Updated**: 2024-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # demo-jlc_stm32f407_fontlib #### 介绍 基于嘉立创天空星 STM32F407VET6 开发板,通过 SDCard 将点阵字库写入到 FLASH 芯片(这里为 W25Q64) #### 软件架构 - 1)基于 CMake 与 CLion 编译 #### 安装教程 #### 使用说明 - 1)通过以下仓库来生成 Unicode、GBK、GB2312 编码的字库: - https://gitee.com/luyaocf/oled_font_library.git - 2)计算点阵字库写入 FLASH 的位置(从最高地址开始分配): ```c #include "stdio.h" #include "stdint.h" #define KB(x) (x / 1024) #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) int main() { const uint32_t font_lib_size[] = { 1480 * 1024, 660 * 1024, 500 * 1024, // Unicode 24/16/12 1690 * 1024, 750 * 1024, 570 * 1024, // GBK 24/16/12 580 * 1024, 260 * 1024, 200 * 1024}; // GB2312 24/16/12 char *names[] = {"unicode 24", "unicode 16", "unicode 12", "gbk 24", "gbk 16", "gbk 12", "gb2312 24", "gb2312 16", "gb2312 12"}; uint32_t base_addr, curr_addr = 0x7FF000; uint32_t total_size = 0; for (int i = 0; i < ARRAY_SIZE(font_lib_size); i++) { total_size += font_lib_size[i]; base_addr = curr_addr; curr_addr -= font_lib_size[i]; printf("| 0x%08X ~ 0x%08X | %10s | %4dk(0x%08X) |\n", base_addr, curr_addr, names[i], KB(font_lib_size[i]), font_lib_size[i]); } printf("\ntotal font_lib_size: %.2fMB(0x%08X)\n", KB(KB(1.0 * total_size)), total_size); } ``` - 3)输出结果: | W25Q64 address | charset | dot matrix size | | ----------------------- | ---------- | ----------------- | | 0x007FF000 ~ 0x0068D000 | unicode 24 | 1480k(0x00172000) | | 0x0068D000 ~ 0x005E8000 | unicode 16 | 660k(0x000A5000) | | 0x005E8000 ~ 0x0056B000 | unicode 12 | 500k(0x0007D000) | | 0x0056B000 ~ 0x003C4800 | gbk 24 | 1690k(0x001A6800) | | 0x003C4800 ~ 0x00309000 | gbk 16 | 750k(0x000BB800) | | 0x00309000 ~ 0x0027A800 | gbk 12 | 570k(0x0008E800) | | 0x0027A800 ~ 0x001E9800 | gb2312 24 | 580k(0x00091000) | | 0x001E9800 ~ 0x001A8800 | gb2312 16 | 260k(0x00041000) | | 0x001A8800 ~ 0x00176800 | gb2312 12 | 200k(0x00032000) | total font_lib_size: 6.53MB(0x00688800)