Mini-F0121-OB使用u8g2来点亮oled
分享作者:diandeng
评测品牌:灵动微电子
评测型号:Mini-F0121-OB
发布时间:2025-05-06 15:15:19
前言
Mini-F0121-OB使用软件模拟ic2点亮OLED液晶屏
开源口碑分享内容

古人云:工欲善其事,必先利其器

一、下载Pack安装包和例程

这个就去看我另外一个测评,这里就不在多说啥

pack包得安装这个

附上连接: https://www.iceasy.com/review/1900025119838572545

二、移植u8g2

oled屏幕驱动ssd1306 IIC

源码下载: https://github.com/olikraus/u8g2

下载完成之后,我们只需要这个文件

打开这个文件夹后选择我们oled的驱动,只需要保留这个u8x8_d_ssd1306_128x64_noname.c 文件其他的驱动都可以删掉

然后把这个csrc文件加入到工程里面,并且把头文件都加进去

在keil里面找到u8g2_d_setup.c这个文件,只保留u8g2_Setup_ssd1306_i2c_128x64_noname_f这个函数,其他的都可以删掉

再找到u8g2_d_memory.c文件,只保留u8g2_m_16_8_f函数

最后还得写一个回调函数,初始化的时候需要用

uint8_t u8g2_gpio_and_delay_stm32(U8X8_UNUSED u8x8_t *u8x8, U8X8_UNUSED uint8_t msg, U8X8_UNUSED uint8_t arg_int, U8X8_UNUSED void *arg_ptr)

{

   switch(msg)

       {

           case U8X8_MSG_DELAY_MILLI://Function which implements a delay, arg_int contains the amount of ms

               Delay_ms(arg_int);

           break;

           case U8X8_MSG_DELAY_10MICRO://Function which delays 10us

               Delay_us(10);

           break;

           case U8X8_MSG_DELAY_100NANO://Function which delays 100ns

               __NOP();

           break;

           case U8X8_MSG_GPIO_I2C_CLOCK:

               if (arg_int) OLED_W_SCL(1);

               else OLED_W_SCL(0);

           break;

           case U8X8_MSG_GPIO_I2C_DATA:

               if (arg_int) OLED_W_SDA(1);

               else OLED_W_SDA(0);

           break;

           default:

               return 0; //A message was received which is not implemented, return 0 to indicate an error

   }

   return 1; // command processed successfully.

}

这样就移植完成了

三、硬件连接

OLED--------> Mini-F0121-OB

gnd  -------->gnd

vcc   -------->3v3

scl    -------->PA0

sda   -------->PA1