移植看了篇文章很快搞定,不过KEIL 用U8G2输出中文搞了半天,大部分都是Arduino 和C不一样看了反而绕的很,搞了半天其实问题很简单。
需要确保
编辑器模式
C 的编码软件模式需要对应

编译器选高版本6

KEIL 异常原因(确保编译器转码)
u8g2_DrawUTF8 输出只要字库有就没用问题,可以改字库其实U8G2本身工具就能实现。
”上“ 字 对应uint8_t data[4]={0xe4,0xb8,0x8a,00};
void u8g2_init(void){
u8g2_t u8g2; // a structure which will contain all the data for one display
u8g2Init(&u8g2);
while (1)
{
/* USER CODE END WHILE /
u8g2_ClearBuffer(&u8g2);
u8g2_SetFont(&u8g2,u8g2_font_unifont_t_chinese2);
u8g2_DrawUTF8(&u8g2,30,15,“上一”);
//异常测试用 u8g2_DrawUTF8(&u8g2,30,15,data);//输出上字
u8g2_SendBuffer(&u8g2);
HAL_Delay(1000);
/ USER CODE BEGIN 3 */
}
}
移植看下面就够了
u8g2_d_setup 配置初始化
很多选择,相同控制器相同分辨率在一个文件夹下,主要差异是配置不同
u8g2_Setup_ssd1306_i2c_128x64_noname_f
#u8g2_d_memery
对应的内存要求也有不同,图像的内存申请可以只保留用到了否则内存消耗会非常大。
uint8_t *u8g2_m_16_8_f(uint8_t *page_cnt)
https://blog.csdn.net/Master_0_/article/details/122359931

转码网页
http://tool.chinaz.com/tools/unicode.aspx
使用U8G2工具生成字库,不用其他不知名工具
http://dx1023.com/blog/37/
../bdf/unifont.bdf ---使用的源字库文件 ../build/dx.map ---需要转换的汉字map表,dx.map直接拿个中文的来改去除/添加../bdf/7x13.bdf ---生成字库的字体文件,可以换字体 wenquanyi_9pt.bdf可以试试,应该问题不大u8g2_font_unifont_dx ---生成字库数组的名字 自定义u8g2_font_unifont_dx.c ---字库保存的c文件名 自定义
需要的字可以dx.map中加减,dx.map直接拿个中文的来改去除添加
在u8g2-master\tools\font\bdfconv 文件夹下运行或修改test**.bat
bdfconv.exe -v ../bdf/unifont.bdf -b 0 -f 1 -M ../build/dx.map -d ../bdf/7x13.bdf -n u8g2_font_unifont_dx -o u8g2_font_unifont_dx.c
