本作品由安信可社区用户
沈夜制作
先来介绍下0.96寸OLED显示屏(驱动芯片:SSD1306 / SSD1315)
[color=rgba(0, 0, 0, 0.87)],0.96寸OLED显示屏是一种小尺寸的有机发光二极管(OLED)显示屏,具有许多优点和特点。以下是对0.96寸OLED显示屏的介绍:
工作电压:3.3V
工作电流:9MA
模块尺寸:27.3 x 27.8 MM
像素大小:128(H) x 64(V)RGB
驱动芯片:SSD1306
通信协议:IIC
管脚数量:4 Pin(2.54mm间距排针)
分为资料介绍、移植至工程、引脚选择介绍:(点击文首原贴地址进行下载)
0.96寸OLED产品规格书.pdf
0.96寸OLED模块原理图-4针脚I2C接口.pdf
驱动芯片SSD1306数据手册.pdf
keil stm32 项目移植:
man.c 事例代码移植
删除 不用的代码。
#include "stm32f10x.h" // Device header
#include "Delay.h"
确少一个 延时,功能一样直接调用博流的库,可以 手动替换成bflb_mtimer_delay_ms ,但是可以根据c语法,[color=rgba(0, 0, 0, 0.87)]在代码中添加以下宏定义:
#define Delay_ms(ms) bflb_mtimer_delay_ms(ms)
则无需修改任何代码。
oled.c i2c 移植
OLED引脚初始化>>OLED_GPIO_Init,
I2C发送一个字节>>OLED_I2C_SendByte
iOLED写命令>>OLED_WriteCommand
OLED写数据>>OLED_WriteData
修改方法:直接复制 sdk里面的i2c代码即可
经过分析。原先工程用的是软件模拟i2c,本次使用的硬件库的。
I2C发送一个字节>>OLED_I2C_SendByte 这个不用移植,直接删掉。
iOLED写命令>>OLED_WriteCommand
OLED写数据>>OLED_WriteData
这里分析得出就是发送从机地址和命令。里面的函数都用不到,可以直接删除:
OLED_I2C_Start(); I2C起始
OLED_I2C_SendByte(0x78);
OLED_I2C_Stop(); //I2C终止
这里介绍功能齐全 - 支持字符、数字、汉字、图像及各种绘图图形显示。
PS:代码非原创,只是移植到了Ai-M61,经验证代码无任何报错。
快速使用:
解压 修改 Makefile 文件
BL_SDK_BASE ?= D:testboliubouffalo_sdk/
为自己的sdk路径即可
#include "OLED.h"
/*OLED初始化*/
OLED_Init();
/*在(0, 0)位置显示字符'A',字体大小为8*16点阵*/
OLED_ShowChar(0, 0, 'A', OLED_8X16);
/*调用OLED_Update函数,将OLED显存数组的内容更新到OLED硬件进行显示*/
OLED_Update();
只需要引用一个,就能方便调用了。
高级设置:
OLED.c
OLED_GPIO_Init 函 数:OLED引脚初始化
只需要替换GPIO_PIN_0、GPIO_PIN_1,就可以修改自定义引脚
OLED_Data.c
注意:添加没有的中文字库,添加图像都在此,demo里面有详细的调用过程。
取模教程
一:配置软件,点设置然后按照如下设置。
二:生成字模。
三:安装格式。主要是删掉多余的,复制没有的即可。
效果如下:
PCtoLCD2002.zip (886.22 KB)
0.96oled.zip (17.69 KB)
备注:进入原贴下载
移植纯c代码需要改的地方并不多,甚至原封不动的复制过来的man文件,仅仅是添加了文件头。一些常见问题汇总给大家作参考:
5.1文件找不到
打开CMakeLists.txt
添加文件包含,格式空格 一个文件名
target_sources(app PRIVATE oled.c OLED_Data.c)
5.2 编译器找不到路径
修改 Makefile 文件
BL_SDK_BASE ?= D:testboliubouffalo_sdk/
也可以 直接修改为sdk的绝对路径,这样你项目的目录 可以随便放在任何地方。
5.3 数据类型找不到
引入c语言库能解决90%
#include
#include
#include
#include
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !