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/

相关推荐
想放学的刺客3 小时前
单片机嵌入式试题(第29期)嵌入式系统的电源完整性设计与去耦电容选型。抗干扰设计与EMC合规性
c语言·stm32·嵌入式硬件·物联网·51单片机
酒鼎3 小时前
学习笔记(4)HTML5新特性(第3章)- WebSocket
笔记·学习·html5
-Springer-4 小时前
STM32 学习 —— 个人学习笔记2-2(新建工程)
笔记·stm32·学习
tb_first4 小时前
万字超详细苍穹外卖学习笔记4
java·spring boot·笔记·学习·spring·mybatis
日更嵌入式的打工仔4 小时前
C内存布局
笔记
卡布叻_星星4 小时前
达梦数据库笔记之使用教程以及不推荐迁移选择小写
笔记
山岚的运维笔记4 小时前
SQL Server笔记 -- 第15章:INSERT INTO
java·数据库·笔记·sql·microsoft·sqlserver
孞㐑¥4 小时前
算法—队列+宽搜(bfs)+堆
开发语言·c++·经验分享·笔记·算法
代码游侠5 小时前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法