stm32f103rct6OLEDhal库教程
时间: 2025-05-24 17:03:21 浏览: 27
### STM32F103RCT6 使用 OLED 和 HAL 库的教程
以下是关于如何使用 STM32F103RCT6 微控制器配合 OLED 显示屏并通过 HAL 库实现 I2C 或 SPI 通信的具体方法。
#### 硬件连接
硬件连接部分可以通过杜邦线将 OLED 屏幕与 STM32F103RCT6 的最小系统板相连。具体连接方式如下:
- GND -> GND
- VCC -> 3.3V
- SCL -> PB6 (I2C 主模式下的时钟信号)[^1]
- SDA -> PB7 (I2C 主模式下的数据信号)[^1]
如果选择 SPI 模式,则需要额外定义 CS(片选)、DC(数据/命令控制)和 RST(复位)引脚,并将其映射到 GPIO 输出端口[^3]。
#### 软件环境搭建
建议使用 STM32CubeMX 工具生成初始化代码框架,以便快速配置外设参数并减少手动编码的工作量。主要步骤包括但不限于:
1. **晶振与时钟配置**
- 将 HCLK 设置为 72MHz,作为系统的主频率。
2. **启用 I2C 外设**
- 在 Pinout & Configuration 中定位 Connectivity 部分,激活 I2C1 功能。
- Mode 设定为 Full-Duplex Master,Parameter Settings 下 Clock Parameters 可保留默认值或者适当调整以匹配实际需求。
对于 SPI 方式的应用案例,请参照相关文档说明完成相应管脚分配及驱动逻辑构建过程。
#### 编写显示函数
利用已有的开源资源可以加速开发进度。例如来自 GitCode 平台上的项目提供了针对此型号 MCU 的基础演示代码片段[^2]。在此基础上扩展功能或将其实现移植至个人工程项目当中都是可行的选择方案之一。
下面是基于 HAL 库的一个简单例子用于清屏以及打印字符串到指定位置的操作示范:
```c
#include "stm32f1xx_hal.h"
#include "ssd1306.h"
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_I2C1_Init(void);
int main(void){
HAL_Init();
SystemClock_Config();
/* 初始化GPIO */
MX_GPIO_Init();
/* 初始化I2C */
MX_I2C1_Init();
SSD1306_Init(); // 初始化OLED屏幕
while (1) {
SSD1306_Clear(); // 清除整个屏幕内容
SSD1306_GotoXY(0, 0); // 移动光标到坐标(0,0)
SSD1306_Puts("Hello World!", Font_11x18, 1); // 打印文字"Hello World!"
SSD1306_UpdateScreen(); // 刷新屏幕显示缓冲区的内容到物理屏幕上
HAL_Delay(1000); // 延迟一秒再重复执行循环体内的指令序列
}
}
// ...其余省略的部分应包含标准库头文件声明、全局变量定义还有各个模块具体的初始化流程等内容...
```
以上代码展示了基本的应用场景——通过调用 `SSD1306` 类型的方法向设备发送特定格式的数据包从而达到渲染图形界面的目的。
---
阅读全文
相关推荐

















