打印
[N32G45x]

【N32G457 】OLED屏显示驱动

[复制链接]
1062|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#
OLED屏有多种类型,按接口方式可分I2C接口和SPI接口方式,按色彩可分为单色、双色及彩色方式。此外,按几何尺寸分又有0.91寸、0.96寸等规格。
从价格和占用引脚资源看,使用0.91寸I2C接口的单色屏是比较经济的。
为此,可以硬件和软件2种方式来实现OLED屏的显示驱动。
从使用灵活性的角度,这里采用软件的方式来实现,并按如下关系来连接:
CLK---PE2
DIN ---PE4
图1 器件连接
故进行如下的定义:
#defineCLK_PIN    1
#defineDIN_PIN    3
#defineOLED_SCLK_Clr()  rt_pin_write(CLK_PIN,PIN_LOW);
#defineOLED_SCLK_Set()  rt_pin_write(CLK_PIN,PIN_HIGH);
#defineOLED_SDIN_Clr()  rt_pin_write(DIN_PIN,PIN_LOW);
#defineOLED_SDIN_Set()  rt_pin_write(DIN_PIN,PIN_HIGH);
为实现I2C方式发送数据,相应的函数为:
void Write_IIC_Byte(unsigned char IIC_Byte)
{
unsigned char i;
unsigned char m,da;
da=IIC_Byte;
OLED_SCLK_Clr();
for(i=0;i<8;i++)
{
m=da;
m=m&0x80;
if(m==0x80)
{
OLED_SDIN_Set();
}
else
OLED_SDIN_Clr();
rt_hw_us_delay(2);
da=da<<1;
OLED_SCLK_Set();
rt_hw_us_delay(2);
OLED_SCLK_Clr();
rt_hw_us_delay(2);
}
}

该OLED屏的初始化函数为:
void OLED_Init(void)
{
Write_IIC_Command(0xAE);
Write_IIC_Command(0x40);
Write_IIC_Command(0xb0);
Write_IIC_Command(0xc8);
Write_IIC_Command(0x81);
Write_IIC_Command(0xff);
Write_IIC_Command(0xa1);
Write_IIC_Command(0xa6);
Write_IIC_Command(0xa8);
Write_IIC_Command(0x1F);
Write_IIC_Command(0xd3);
Write_IIC_Command(0x00);
Write_IIC_Command(0xd5);
Write_IIC_Command(0xf0);
Write_IIC_Command(0xd9);
Write_IIC_Command(0x22);
Write_IIC_Command(0xda);
Write_IIC_Command(0x02);
Write_IIC_Command(0x8d);
Write_IIC_Command(0x14);
Write_IIC_Command(0xdb);
Write_IIC_Command(0x49);
Write_IIC_Command(0xaf);
}

进行OLED屏的清屏函数为:
void OLED_Clear(void)
{
uint8_t i,n;
for(i=0;i<8;i++)
{
OLED_WR_Byte(0xb0+i,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x10,OLED_CMD);
for(n=0;n<128;n++) OLED_WR_Byte(0,OLED_DATA);
}
}

实现字符串显示的函数为:
void OLED_ShowString(uint8_t x,uint8_t y,uint8_t *chr,uint8_t Char_Size)
{
unsigned char j=0;
while (chr[j]!='\0')
{

使用以上函数,实现图2所示效果的程序代码为:
   rt_pin_mode(DIN_PIN, PIN_MODE_OUTPUT);
   OLED_Clear();
   OLED_ShowString(20,0,"N32G457TEST",16);
   OLED_ShowString(20,2,"OLEDDISPLAY",16);
图2 显示效果


使用特权

评论回复
沙发
daichaodai| | 2022-1-11 20:59 | 只看该作者
显示为什么这么暗呢?

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2022-1-12 09:25 | 只看该作者
daichaodai 发表于 2022-1-11 20:59
显示为什么这么暗呢?

使用时不小心,电源接反过一次,前半部分烧毁了,只能凑乎用了!

使用特权

评论回复
地板
alexzhou88| | 2022-1-14 09:42 | 只看该作者
淘宝一块开发板,玩一玩!!!

使用特权

评论回复
5
huquanz711| | 2022-1-15 18:43 | 只看该作者
这OLED被楼主玩坏了

使用特权

评论回复
6
kyzhd| | 2022-1-21 14:17 | 只看该作者
应该是角度的问题,看上去像烧屏了呢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

451

主题

2747

帖子

38

粉丝