第N章 STM32学习笔记之OLED屏幕
目录
笔记:跟着B站教学视频做的学习笔记
方便于程序调试,将调试信息直接打印在显示屏上
OLED即有机发光二极管,每个像素都可以自发光,区别于LCD屏不同的是LCD屏需要被背光才能看清
供电:3~5.5V,通信协议:I2C/SPI,分辨率:128*64
四针脚版本OLED电路:GND接GND、VCC接3.3V供电,SCL和SDA接单片机的I2C通信引脚上
七针脚版本OLED电路:GND接GND、VCC接3.3V供电,剩下的接单片机SPI的通信引脚上
0.96寸OLED屏显示矩阵为4行16列,可将其划分为如下:
新建一个标准库工程,详细见以前章节
在工程文件中新建一个文件夹用来存放OLED驱动程序
将OLED屏驱动程序复制粘贴到刚刚新建的文件夹中
打开工程,添加刚刚新建的文件夹:选择“Add Group”
将添加的组改名为跟文件夹一致后,右键选择”Add Exiting Files to Group",把复制的OLED驱动程序添加到工程中来
点击魔法棒添加文件路径
在OLED.c文件中,根据配置需求来进行引脚配置,如SCL接PB8、SDA接PB9,就如下配置
/*引脚配置*/
#define OLED_W_SCL(x)?? ??? ?GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x))
#define OLED_W_SDA(x)?? ??? ?GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))
如果引脚配置发生改变,相应的初始化函数里的引脚也应跟着修改
void OLED_I2C_Init(void)
{
? ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
?? ?
?? ?GPIO_InitTypeDef GPIO_InitStructure;
??? ?GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
?? ?GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
?? ?GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
??? ?GPIO_Init(GPIOB, &GPIO_InitStructure);
?? ?GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
??? ?GPIO_Init(GPIOB, &GPIO_InitStructure);
?? ?
?? ?OLED_W_SCL(1);
?? ?OLED_W_SDA(1);
}
在main.c包含OLED.h文件后,就可以根据驱动函数模块来操作OLED屏了
本文只是简单记录OLED屏的驱动函数移植步骤,关于OLED屏的通信、中文显示、图片显示等,后续有时间再更新