STM32学习笔记--I2C封装与OLED(2026.2.1)

发送字节

python 复制代码
uint8_t commends = {0x00, 0x8d,0x14,0xaf,0xa5};
My_I2C_SendBytes = {I@C1,0x78,commands,5};

接收字节:

软I2C初始化代码:

OLED

屏幕初始化:

画笔和画刷:

cpp 复制代码
//
// @画笔和画刷
//

// @设置画笔
void OLED_SetPen(OLED_TypeDef *OLED, uint8_t Pen_Color, uint8_t Width);
// @设置画刷
void OLED_SetBrush(OLED_TypeDef *OLED, uint8_t Brush_Color);

坐标系:

屏幕左上角(0,0),向右为x轴,向下为y轴

光标:

cpp 复制代码
//
// @光标
//

// @设置光标位置
void OLED_SetCursor(OLED_TypeDef *OLED, int16_t X, int16_t Y);
// @设置光标的X坐标
void OLED_SetCursorX(OLED_TypeDef *OLED, int16_t X);
// @设置光标的Y坐标
void OLED_SetCursorY(OLED_TypeDef *OLED, int16_t Y);
// @移动光标
void OLED_MoveCursor(OLED_TypeDef *OLED, int16_t dX, int16_t dY);
// @沿X轴方向移动光标
void OLED_MoveCursorX(OLED_TypeDef *OLED, int16_t dX);
// @沿Y轴方向移动光标
void OLED_MoveCursorY(OLED_TypeDef *OLED, int16_t dY);
// @获取光标当前位置
void OLED_GetCursor(OLED_TypeDef *OLED, int16_t *pXOut, int16_t *pYOut);
// @获取光标X坐标
int16_t OLED_GetCursorX(OLED_TypeDef *OLED);
// @获取光标Y坐标
int16_t OLED_GetCursorY(OLED_TypeDef *OLED);

文字相关操作:

cpp 复制代码
OLED_SetPen (&oled, PEN_COLOR_WHITE, 1); // 设置白画笔
OLED_SetBrush(&oled, PEN_COLOR_TRANSPARENT);//透明画刷
OLED_SetCursor(&oled, 24,50);// 设置光标
OLED_DrawString (&oled, "Hello world");

OLED_SendBuffer(&oled);
设置字体:
格式化打印当前日期:
设置文本区域:

实现文字自动换行效果

cpp 复制代码
OLED_StartTextRegion (&oled, 0, 0, 128, 64);
OLED_DrawString (&oled, "There was a man named John. \r\n") ;
OLED_DrawString (&oled, "He was 70 years old. \r\n");
OLED_DrawString (&oled, "He really liked his name of John. \r\n");
OLED_DrawString (&oled, "But didn't like the age of 70. \r\n");

绘图相关操作:

画点:
画线:
绘制矩形和圆:
绘制位图:

位图转换地址:https://javl.github.io/image2cpp/

相关推荐
AI_零食2 分钟前
开源鸿蒙跨平台Flutter开发:密码生成器应用
网络·学习·flutter·华为·开源·harmonyos·鸿蒙
智者知已应修善业5 分钟前
【51单片机1,左边4个LED灯先闪烁2次后,右边4个LED灯再闪烁2次:2,接着所用灯一起闪烁3次,接着重复步骤1,如此循环。】2023-5-19
c++·经验分享·笔记·算法·51单片机
JaneHan_8 分钟前
STM32CubeMX+HAL+Keil5 GPIO输入 按键控制
stm32·单片机·嵌入式硬件
fengci.14 分钟前
LilCTF2025web(前半部分)
开发语言·网络·学习·php
平凡灵感码头15 分钟前
C51 与 STM32 编程对比:从数据类型、关键字到程序结构
stm32·单片机·嵌入式硬件
zhangrelay16 分钟前
蓝桥云课一分钟-绚丽贪吃蛇-后续-cmake
笔记·学习
世人万千丶17 分钟前
Flutter 框架跨平台鸿蒙开发 - AR寻宝探险游戏应用
学习·flutter·游戏·华为·开源·ar·harmonyos
承渊政道19 分钟前
【优选算法】(实战攻坚BFS之FloodFill、最短路径问题、多源BFS以及解决拓扑排序)
数据结构·c++·笔记·学习·算法·leetcode·宽度优先
漠缠21 分钟前
缠论核心公理:走势终完美
学习·程序人生
LCG元21 分钟前
STM32实战:基于STM32F103的HC-SR04超声波测距与OLED显示
stm32·单片机·嵌入式硬件