OLED显示屏

0.单片机调试方式:

串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息

显示屏调试:直接将显示屏连接到单片机,将调试信息打印在显示屏上

Keil调试模式:借助Keil软件的调试模式,可使用单步运行、设置断点、查看寄存器及变量等功能

点灯调试法

注释调试法

对照法

1.OLED简介:

OLED(Organic Light Emitting Diode):有机发光二极管

OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点

0.96寸OLED模块:小巧玲珑、占用接口少、简单易用,是电子设计中非常常见的显示屏模块

供电:3~5.5V,通信协议:I2C/SPI,分辨率:128*64

I2C通信

 SPI通信

2.硬件电路

3.OLED驱动函数

函数作用
OLED_Init();初始化
OLED_Clear();清屏
OLED_ShowChar(1, 1, 'A');显示一个字符
OLED_ShowString(1, 3, "HelloWorld!");显示字符串
OLED_ShowNum(2, 1, 12345, 5);显示十进制数字。若长度比数字长度大,在前面补0;若小,则把高位数据切掉
OLED_ShowSignedNum(2, 7, -66, 2);显示有符号十进制数字
OLED_ShowHexNum(3, 1, 0xAA55, 4);显示十六进制数字
OLED_ShowBinNum(4, 1, 0xAA55, 16);显示二进制数

例:

OLED_Init();
	
	OLED_ShowChar(1,1,'A');
	OLED_ShowString(1,3,"HelloWorld!");
	OLED_ShowNum(2,1,211314,5);//长度比数字长度大,前面补0;长度比数字长度小,切掉高位
	OLED_ShowSignedNum(2,7,12345,4);
	OLED_ShowHexNum(3,1,0xAA55,4);
	OLED_ShowBinNum(4,1,0xAA55,16);//C标准不支持二进制
	
	OLED_Clear();//清屏
	OLED_ShowString(1,3," ");//清除1行3格的字符

4.OLED显示程序

也可以直接用GPIO口供电,PB6低电平,PB7高电平

找到OLED的三个驱动函数

只需要更改 引脚配置、引脚初始化 两部分即可

oled.c

#include "stm32f10x.h"
#include "OLED_Font.h"

/*引脚配置*/
#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;//I2C标准就是开漏输出模式,解释详见CSDN博客
	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);
}

补充:为什么用开漏输出

这是I2C的电路规范,解决多级通信互相干扰的问题。

因为开漏输出高电平呈现“断开”,这样就相当于断开与CPU连接,不会干扰其他设备。

而开漏输出高电平没有驱动能力,在SCL\SDA各自设置1个上拉电阻。

这样开漏+上拉电阻-->实现 线与 功能

/********************************************/

keil自带在线调试功能 自己探索

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值