stm32f103移植u8g2(硬件I2C)
芯片型号:stm32f103zet6;hal固件库版本:V1.8.5
移植过程主要参考这篇博客:https://www.cnblogs.com/frozencandles/p/16358483.html
但是涉及到下面两个函数的时候:
1 uint8_t u8x8_gpio_and_delay_hw(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) 2 3 uint8_t u8x8_byte_hw_i2c(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr)
写的不是很好,参考了另外一篇博客:https://blog.csdn.net/weixin_42150905/article/details/118108327
刚开始我的所有字库按照第一篇博客删掉了,又参考了另外一篇博客:
https://blog.csdn.net/qq_52286922/article/details/131033961
加入了三个字库:
uint8_t u8g2_font_inb30_mn[807] uint8_t u8g2_font_inb24_mf[8821] uint8_t u8g2_font_4x6_tr[723]
参照最后一篇,写了测试程序,英文字符显示没有问题。
但最终,需要显示中文。为了构建最小的软件包,我们需要制作自己的中文字库,参照如下:
https://blog.csdn.net/keysaure/article/details/128820560
经过测试,完美。
移植U8G2的源程序包地址:https://gitee.com/njit-sam/stm32-i2c-oled-u8g2
里面包含个人字库文件
在显示图片的时候,总是出现问题,混乱,下面给出一个图片转码工具:
https://tools.clz.me/image-to-bitmap-array
在使用的时候,这个选项务必要勾选上
不然会出问题。显示图片示例代码:
1 u8g2_ClearBuffer(&u8g2); 2 u8g2_DrawXBM(&u8g2, 48, 15, 32, 32, col);//col是图片数组 3 u8g2_SendBuffer(&u8g2); 4 delay_ms(1000);