3899|14

1510

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【AT32F421测评】+ OLED屏的显示驱动 [复制链接]

 
 

在AT32F421开发板上,配置有Arduino接口,这就为外设及功能扩展通过了极大的方便, 比如我们可以利用其I2C接口来驱动OLED屏的显示,其显示效果如图所示。

由于板上的I2C接口与OLED屏的引脚连接错位的,故用GPIO来模拟I2C即可分分钟地解决问题。

OLED屏显示效果

 

OLED屏与MCU的连接关系为:

SCL---PB9

SDA-- PB8

引脚输出高低电平的相关定义语句如下:

#define OLED_SCLK_Set()   GPIOB->BSRE = GPIO_Pins_9

#define OLED_SCLK_Clr()   GPIOB->BRE = GPIO_Pins_9

 

#define OLED_SDIN_Set()   GPIOB->BSRE = GPIO_Pins_8

#define OLED_SDIN_Clr()   GPIOB->BRE = GPIO_Pins_8

 

OLED屏的引脚输出功能设置函数为:

void AT32_OLED_Init(void)
{
  GPIO_InitType GPIO_InitStructure;
  RCC_AHBPeriphClockCmd(RCC_AHBPERIPH_GPIOB, ENABLE);
  GPIO_StructInit(&GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pins = GPIO_Pins_8|GPIO_Pins_9;    
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OutType = GPIO_OutType_PP;
  GPIO_InitStructure.GPIO_Pull = GPIO_Pull_NOPULL;       
  GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
}

相应的字符串输出函数为:

void OLED_ShowCHinese(uint8_t x, uint8_t y, uint8_t no)
{
         uint8_t t,adder=0;
         OLED_Set_Pos(x,y);
         for(t=0;t<16;t++)
         {
                  OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);
                  adder+=1;
         }
         OLED_Set_Pos(x,y+1);
         for(t=0;t<16;t++)
         {
                  OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);
                  adder+=1;
         }
}

实现字符串显示的主程序为:

int main(void)
{
     AT32_Board_Init();
     AT32_OLED_Init();
     OLED_Init();
     OLED_Clear();
     OLED_ShowString(0,0,"AT32F421 TEST",16);
     OLED_ShowString(0,2,"OLED DISPLAY",16);
     for(;;)
     {
      AT32_LEDn_Toggle(LED2);
      Delay_ms(200);
      AT32_LEDn_Toggle(LED3);
      Delay_ms(200);
      AT32_LEDn_Toggle(LED4);
      Delay_ms(200);
    }
}

 

最新回复

  详情 回复 发表于 2021-4-13 17:02

赞赏

1

查看全部赞赏

点赞(1) 关注
 
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 

不错,看来Arduino接口有必要。

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

是呀,与外设好配合使用。  详情 回复 发表于 2021-4-12 10:37
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
soso 发表于 2021-4-12 09:30 不错,看来Arduino接口有必要。

是呀,与外设好配合使用。

 
 
 

回复

693

帖子

7

TA的资源

版主

4
 

显示屏的显示可以竖着显示吗?就像手环那样的显示方式

点评

这个应该没问题,把字模显示转置一下就可以了。  详情 回复 发表于 2021-4-12 12:47
 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

5
 
bqgup 发表于 2021-4-12 11:35 显示屏的显示可以竖着显示吗?就像手环那样的显示方式

这个应该没问题,把字模显示转置一下就可以了。

 
 
 

回复

1942

帖子

2

TA的资源

版主

6
 

不错,IIC驱动真好~

点评

是呀,比LED仅多用一个引脚,但在信息表现力上却强许多。  详情 回复 发表于 2021-4-13 09:20
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

7
 

谢谢分享,i2c不复杂,算是一个练手的必备项目。

点评

不错,OLED屏这种小玩意儿的使用是仅次于LED点灯的GPIO口测试方式,但较LED的用途更强些。  详情 回复 发表于 2021-4-13 09:17
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

6802

帖子

0

TA的资源

五彩晶圆(高级)

8
 

I2C接口与OLED屏的引脚连接错位

是板子设计的小错误么

点评

这到不是,主要是因为OLED屏的引脚排列不太适合Arduino接口的特点。  详情 回复 发表于 2021-4-13 09:11
 
 
 

回复

71

帖子

2

TA的资源

一粒金砂(中级)

9
 

听说STM32的本身的IIC有些许问题,不知道雅特力的怎么样。楼主有遇到过吗?

点评

我为了使用引脚的方便性,更少直接用硬件的I2C驱动外设,使用习惯不同罢了,但能实现自己需要的功能就好。  详情 回复 发表于 2021-4-13 09:15
 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

10
 
Jacktang 发表于 2021-4-12 22:44 I2C接口与OLED屏的引脚连接错位 是板子设计的小错误么

这到不是,主要是因为OLED屏的引脚排列不太适合Arduino接口的特点。

 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

11
 
本帖最后由 jinglixixi 于 2021-4-14 08:14 编辑
Albert.G 发表于 2021-4-13 08:41 听说STM32的本身的IIC有些许问题,不知道雅特力的怎么样。楼主有遇到过吗?

我为了使用引脚的方便性,很少直接用硬件的I2C驱动外设,使用习惯不同罢了,但能实现自己需要的功能就好。

 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

12
 
freebsder 发表于 2021-4-12 22:41 谢谢分享,i2c不复杂,算是一个练手的必备项目。

不错,OLED屏这种小玩意儿的使用是仅次于LED点灯的GPIO口测试方式,但较LED的用途更强些。

 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

13
 
w494143467 发表于 2021-4-12 16:28 不错,IIC驱动真好~

是呀,比LED仅多用一个引脚,但在信息表现力上却强许多。

 
 
 

回复

1239

帖子

66

TA的资源

纯净的硅(中级)

14
 
 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

15
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表