芯片型号:
ESP32-S2-MINI-1
开发环境:VS Code + ESP-IDF插件
- 从官方下载u8g2源码:u8g2
- 复制
csrc文件夹到工程目录下

- 将不必要的外设驱动(
u8x8_d_xxx.c)删除,只保留需要使用的驱动(u8g2_d_memory.c和u8g2_d_setup.c要保留),下面以ssd1306为例,保留u8x8_d_ssd1306_128x64_noname.c文件

- 删除后,将c/h文件独立放在两个文件夹下:
u8g2
├─inc
│ mui.h
│ mui_u8g2.h
│ u8g2.h
│ u8x8.h
│
└─src
mui.c
mui_u8g2.c
u8g2_bitmap.c
u8g2_box.c
u8g2_buffer.c
u8g2_button.c
u8g2_circle.c
u8g2_cleardisplay.c
u8g2_d_memory.c
u8g2_d_setup.c
u8g2_font.c
u8g2_fonts.c
u8g2_hvline.c
u8g2_input_value.c
u8g2_intersection.c
u8g2_kerning.c
u8g2_line.c
u8g2_ll_hvline.c
u8g2_message.c
u8g2_polygon.c
u8g2_selection_list.c
u8g2_setup.c
u8log.c
u8log_u8g2.c
u8log_u8x8.c
u8x8_8x8.c
u8x8_byte.c
u8x8_cad.c
u8x8_capture.c
u8x8_debounce.c
u8x8_display.c
u8x8_d_ssd1306_128x64_noname.c
u8x8_fonts.c
u8x8_gpio.c
u8x8_input_value.c
u8x8_message.c
u8x8_selection_list.c
u8x8_setup.c
u8x8_string.c
u8x8_u16toa.c
u8x8_u8toa.c
- 将
u8g2文件夹放在components组件下

- 修改
components组件的CMakeLists.txt
# components组件编译时会被自动构建(依据idf_component_register包含的头文件)
file(GLOB_RECURSE SOURCES u8g2/src/*.c)
idf_component_register(SRCS ${
SOURCES}
INCLUDE_DIRS "u8g2/inc")
- 删除
u8g2_d_setup.c中不必要的内容,只保留u8g2_Setup_ssd1306_128x64_noname_f函数
#

本文介绍了如何在ESP32开发环境中,使用VSCode和ESP-IDF插件配置u8g2库来驱动SSD1306 OLED显示屏。通过下载源码、删除不必要的驱动、修改CMakeLists.txt、定制回调函数以及初始化显示,实现了软件模拟SPI通信。最后展示了初始化OLED和显示 HelloWorld 的示例代码。
最低0.47元/天 解锁文章
3254

被折叠的 条评论
为什么被折叠?



