mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
116 字
1 分钟
基于HAL库的OLED的驱动库(IIC)
2026-07-10

基于HAL库的OLED的驱动库#

这个库是在江协开源的OLED库上修改的(感谢江协开源),这个库适配于4脚IIC版本的OLED。

简单介绍#

修改引脚#

/*引脚配置*/
#define OLED_W_SCL(x) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, (x) ? GPIO_PIN_SET : GPIO_PIN_RESET)
#define OLED_W_SDA(x) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, (x) ? GPIO_PIN_SET : GPIO_PIN_RESET)
/*默认适配stm32f103c8t6*/
/*可根据需求自行修改*/

使用示例#

/*OLED初始化*/
OLED_Init();
/*OLED清屏*/
OLED_Clear();
/*
Line 显示行:1~4
Column 显示列:1~16
char 显示字符
使用示例 OLED_ShowChar(1, 1, 'A');
*/
void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char);
/*
Line 显示行:1~4
Column 显示列:1~16
String 显示字符串
使用示例 OLED_ShowString(1, 1, "Hello");
*/
void OLED_ShowString(uint8_t Line, uint8_t Column, char *String);
/*
Line 显示行:1~4
Column 显示列:1~16
Num 显示数字
Length 数字位数
使用示例 OLED_ShowNum(1, 7, 123, 3);
*/
void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
/*
Line 显示行:1~4
Column 显示列:1~16
Number 显示有符号的数字
Length 数字位数
使用示例 OLED_ShowNum(1, 7, -123, 3);
*/
void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length);
/*
Line 显示行:1~4
Column 显示列:1~16
Number 显示十六进制数字
Length 数字位数
使用示例 OLED_ShowHexNum(3, 1, 0x1A, 2);
*/
void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
/*
Line 显示行:1~4
Column 显示列:1~16
Number 显示二进制数字
Length 数字位数
使用示例 OLED_ShowBinNum(4, 1, 0x20, 8);
*/
void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);

驱动文件的获取#

https://github.com/Lrebu/Driver

结尾#

再次感谢江协的开源,各位在使用这个OLED驱动库的时候如果出现问题,请将问题反馈至1599161405@qq.com,我会抽空解决

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

基于HAL库的OLED的驱动库(IIC)
https://blog.rebuffed.cloud/posts/oled_driver/
作者
rebuffed
发布于
2026-07-10
许可协议
CC BY-NC-SA 4.0
封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00