littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于STM32F103的SSD1306 OLED显示屏驱动

项目简介

本项目是一个基于STM32F103微控制器的SSD1306 OLED显示屏驱动库。该库支持1.3英寸的SSD1306 OLED显示屏,通过SPI接口与STM32F103C8T6微控制器通信。项目代码设计简洁,易于移植到其他类型的微控制器上。

项目的主要特性和功能

主要特性

  • 硬件支持:基于STM32F103C8T6微控制器开发,支持1.3英寸SSD1306 OLED显示屏。
  • 通信协议:使用SPI通信协议进行数据传输,支持3线SPI模式。
  • DMA支持:使用DMA1通道3进行SPI数据传输,提升数据传输效率。
  • 图形和文本显示:提供丰富的图形绘制和文本打印功能,支持自定义字体和图标。
  • 易于移植:代码结构清晰,可轻松移植到其他微控制器平台。

功能概述

  • GPIO控制:提供GPIO配置和控制的API。
  • SPI通信:支持SPI1接口的初始化和数据传输。
  • DMA传输:使用DMA进行SPI数据传输,减少CPU负载。
  • OLED驱动:支持SSD1306和SH1106控制器的OLED显示屏,提供图形绘制和文本打印API。

安装使用步骤

1. 硬件准备

  • STM32F103C8T6微控制器开发板。
  • 1.3英寸SSD1306 OLED显示屏模块。
  • 连接线:SPI和GPIO接口的连接线。

2. 软件准备

  • 下载本项目的源代码。
  • 使用STM32CubeIDE或其他STM32开发环境。

3. 配置和使用

  1. 导入项目:将源代码导入到STM32开发环境中。
  2. 配置硬件:根据硬件连接,配置SPI和GPIO接口。
  3. 初始化OLED:在main.c中初始化SPI和OLED显示屏: c int main(void) { SPI_Init(); SSD_init(); while(1); }
  4. 使用图形和文本API:调用ssd1306_gfx.hssd1306_print.h中的API进行图形绘制和文本打印。例如: c SSD_GFX_loadSmallBitmap(ant_8x8, 8, 8, 0, 0); SSD_GFX_loadSmallBitmap(sig_strenght_lvl4_8x8, 8, 8, 8, 0);
  5. 更新显示:使用DMA或手动更新OLED显示缓冲区: c SSD_updateBuffer(SSD_GFX_returnBufferPointer());

4. 编译和下载

  • 编译项目并下载到STM32F103C8T6开发板。
  • 运行程序,观察OLED显示屏的输出。

注意事项

  • 本项目不包含HAL库函数,需根据具体需求进行适配。
  • 如果不需要使用DMA,可以替换SPI和GPIO的API为自定义实现。
  • ssd1306.h中选择使用的OLED驱动(SSD1306或SH1106)。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】