首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >0.91寸OLED驱动

0.91寸OLED驱动

作者头像
iot-me.club
发布2022-02-11 11:21:04
发布2022-02-11 11:21:04
2.3K00
代码可运行
举报
文章被收录于专栏:iot-meiot-me
运行总次数:0
代码可运行

128×32 0.91寸OLED驱动,基于STM32 HAL库

github链接

硬件参数

驱动:SSD1306 接口:I2C 分辨率:128×32 尺寸:0.91寸

数据手册

0.91寸OLED开发手册 提取码:12f1

SSD1306 Datasheet

How to use

使用STM32CubeMX生成工程 打开i2c

将oled.c添加到Src文件夹 将oledfont.h,oledpic.h添加到Inc文件夹

将以上文件添加到工程中

主函数编写顺序

main.c中要添加#include "oledpic.h"(如果你使用OLED_ShowPic函数来显示图片)oledfont.h已经包含在oled.c中所以不用再引用

初始化I2C MX_I2C2_Init();

初始化OLED屏幕 OLED_Init();

接下来就可以调用OLED显示函数了。

函数使用说明

  • OLED写命令,写数据函数,如果想移植到其他开发板上可以更改这个两个函数的内容

例如:我使用了i2c2接口,那么你只需要将&hi2c1改成&hi2c2就可以了。

代码语言:javascript
代码运行次数:0
运行
复制
  void OLED_Write_cmd(uint8_t cmd);
	void OLED_Write_data(uint8_t data);
  • 图片显示函数 图片开始、结束显示位置,图片显示指针地址。图片取模方式:阴码,逆向,列行式,十六进制
代码语言:javascript
代码运行次数:0
运行
复制
	void OLED_ShowPic(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t BMP[]);
  • 16x16汉字显示,no是该汉字在oledfont.h文件中Hzk[]数组中的序号。OLED_ShowHzbig是显示32x32的汉字。
代码语言:javascript
代码运行次数:0
运行
复制
	void OLED_ShowHanzi(uint8_t x, uint8_t y, uint8_t no);
	void OLED_ShowHzbig(uint8_t x, uint8_t y, uint8_t n);
  • 显示浮点数,accuracy是保留小数点的位数
代码语言:javascript
代码运行次数:0
运行
复制
	void OLED_ShowFloat(uint8_t x, uint8_t y, float num, uint8_t accuracy, uint8_t fontsize);
  • 显示整数,length是显示位数
代码语言:javascript
代码运行次数:0
运行
复制
	void OLED_ShowNum(uint8_t x, uint8_t y, uint32_t num, uint8_t length, uint8_t fontsize);
  • 显示字符,字符串,fontsize可以是8或者16,分别显示6x8,8x16大小的ASCII字符
代码语言:javascript
代码运行次数:0
运行
复制
	void OLED_ShowStr(uint8_t x, uint8_t y, char *ch, uint8_t fontsize);
		void OLED_ShowChar(uint8_t x, uint8_t y, uint8_t ch, uint8_t fontsize);
  • 全部填充函数,使用该函数后屏幕全部亮起
代码语言:javascript
代码运行次数:0
运行
复制
void OLED_Allfill(void);
  • 设置坐标,函数库文件内部使用
代码语言:javascript
代码运行次数:0
运行
复制
void OLED_Set_Position(uint8_t x, uint8_t y);
  • 清屏,清除所有像素
代码语言:javascript
代码运行次数:0
运行
复制
	void OLED_Clear(void);
  • OLED初始化,在使用以上函数前调用,该函数会将一些液晶控制字发送到驱动,使能显示器,必须首先调用
代码语言:javascript
代码运行次数:0
运行
复制
void OLED_Init(void);

示例

使用STM32F334R8 HAL库 ARM-MDK

使用硬件I2C1,SDA接PB7,SCL接PA15 具体配置可以看example-F334R8-0.91OLED.ioc文件(使用STM32CubeMX打开)

example-F334R8-0.91OLED

使用STM32F103R8T6 HAL库 ARM-MDK

使用硬件I2C2,SCL->PB10 SDA->PB11 (我的I2C1好像有问题😭)

example-F334R8-0.91OLED

使用STM32F03R8T6 HAL库 PlatformIO

硬件按配置使用I2C2,使用PlatformIO开发

example-F103R8-0.91OLED-PlatformIO

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年06月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 硬件参数
  • 数据手册
  • How to use
    • 主函数编写顺序
  • 函数使用说明
  • 示例
    • 使用STM32F334R8 HAL库 ARM-MDK
    • 使用STM32F103R8T6 HAL库 ARM-MDK
    • 使用STM32F03R8T6 HAL库 PlatformIO
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档