注:本程序已验证可用,但只对本店模块做过适配测试,其他模块我们没法保证一定能用
实物参考链接 直戳跳转
一、资源说明
二、基本参数
一般使用主要关注驱动芯片,分辨率,通信接口,供电电压。
1、引脚说明
三、通信协议说明
IIC通信
1、起始信号
时序图:
代码:
//IIC Start
void IIC_Start()
{
OLED_SCL_High;
OLED_SDA_High;
IIC_Delay();
OLED_SDA_Low;
IIC_Delay();
OLED_SCL_Low;
}
2、停止信号
时序图:
代码:
//IIC Stop
void IIC_Stop()
{
OLED_SCL_Low;
OLED_SDA_Low;
IIC_Delay();
OLED_SCL_High;
OLED_SDA_High;
}
3、等待应答
时序图:
代码:
//等待信号响应,对应答信号进行判断并添加返回值
uint8_t I2C_WaitAck(void) //测数据信号的电平
{
uint8_t Ack_Sta;
OLED_SDA_High;
IIC_Delay();
OLED_SCL_High;
IIC_Delay();
if(OLED_SDA)
{
Ack_Sta = 1;
}
else
{
Ack_Sta = 0;
}
OLED_SCL_Low;
IIC_Delay();
return Ack_Sta;
}
4、发送数据
时序图:
代码:
// 通过I2C总线写一个字节
uint8_t Write_IIC_Byte(uint8_t IIC_Byte)
{
uint8_t i;
for(i=0;i<8;i++)
{
if(IIC_Byte & 0x80)
{
OLED_SDA_High;
}
else
{
OLED_SDA_Low;
}
IIC_Delay();
OLED_SCL_High;
IIC_Delay();
OLED_SCL_Low;
IIC_Byte<<=1;
}
return I2C_WaitAck();
}
四、部分代码说明
引脚定义
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+4针OLED(IIC)
//IIC 对应IO口高低电平 宏定义
//RES引脚
#define OLED_RES_CLK RCC_APB2Periph_GPIOB
#define OLED_RES_PORT GPIOB
#define OLED_RES_PIN GPIO_Pin_5
//SCL//DO
#define OLED_SCL_CLK RCC_APB2Periph_GPIOB
#define OLED_SCL_PORT GPIOB
#define OLED_SCL_PIN GPIO_Pin_6
//SDA//DI
#define OLED_SDA_CLK RCC_APB2Periph_GPIOB
#define OLED_SDA_PORT GPIOB
#define OLED_SDA_PIN GPIO_Pin_7
2、背光参数
如需改OLED显示亮度可改Brightness宏定义,范围0x00~0xff
//背光亮度调节宏定义,0x00~0xff
#define Brightness 0xCF
WriteCmd(0x81); //--set contrast control register//设置对比度,也就是亮度
WriteCmd(Brightness); //亮度调节 0x00~0xff
五、相关资料
STC89C52RC程序下载 直戳跳转
STM32F103C8T6程序下载
串口下载 直戳跳转
ST-LINK下载 直戳跳转
J-LINK下载 直戳跳转
DAP-LINK下载 直戳跳转
字符软件使用 直戳跳转
六、字符图片提取格式
文字格式:共阴——列行式——逆向——C51——行前后缀括号去掉
图像格式:共阴——列行式——逆向——C51——行前后缀括号去掉
七、视频效果展示与程序资料获取
实物参考链接 直戳跳转
八、注意事项
VCC GND请勿接反,接反易烧
显示异常时,排除接线接触不良
同程序换其他同类屏幕后需要按单片机复位才会正常显示
不同尺寸OLED屏幕程序并不完全兼容
下载后显示多出一些杂点的时候可以重新上电复位下
九、接线说明
可参考程序main.c最上面接线说明