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);
posted @ 2023-08-28 10:27  njit-sam  阅读(312)  评论(0编辑  收藏  举报