嵌入式技术论坛
直播中

jf_22885777

3年用户 6经验值
私信 关注
[经验]

【RTT大赛作品连载】AB32VG1开发板OLED显示实验

      最近在玩AB32VG1,在做OLED显示实验时,在csdn搜索了很多关于AB32VG1驱动OLED的文章,很多都是官方例程操作,在msh窗口中输入测试指令,测试驱动是否正常。很少有关于在main函数中直接实现的,本编文章直接在MAIN函数实现OLED显示,上电自动执行。

     根据说明书,AB32VG1 开发板上有一路 I2C,本文通过 RT-Thread Studio 配置 AB32VG1 片上外设 I2C 的引脚,驱动OLED工作,使开发板上电,OLED显示字符串“Hello IIC”。电路原理如图所示,

开发板实物IIC位置如图所示:
I2C 的 OLED 屏,芯片 SSD1309 .

步骤说明:
  • 首先创建工程,如图所示,输入工程名字AB32VG1_IIC_OLED,点击完成即可
工程创建成功如上图所示。
2.添加SSD1309软件包
        展开工程,双击打开RT-Thread Settings,如下图所示,点击Add按钮,弹出软件包搜索界面,在搜索框中,输入SSD1306,点击搜索,结果如上图所示,点击添加即可。软件包已经添加至工程中,返回上个界面,既可以看到软件包下面有了ssd1306,如下图所示、
双击软件包进入SSD1306软件包配置界面,这里驱动要打上勾号,如下图所示
然后在硬件中,开启IIC功能,如下图所示
下载 (5).png
点击保存按钮即可,SSD1306驱动配置完成。配置完成之后,打开packeges,可以看到该文件下已经有了SSD1306_LATEST文件,这里存放的就是SSD1306的头文件和源文件。如下图所示。
下载 (4).png
打开源文件,可以看到如下蓝色代码,其中char ssd1306_WriteString(char* str, FontDef Font, SSD1306_COLOR color)这个函数是使得OLED显示字符串,void ssd1306_SetCursor(uint8_t x, uint8_t y)这个函数,则是设置光标位置。下面我们调用这两个函数实现"hello IIC"的显示。

下载 (3).png

3.修改main函数代码
首先,要包含头文件,#include "ssd1306.h"//包含SSD1306的头文件
然后在main函数里面添加如下代码:
   ssd1306_Init();//添加代码,显示屏初始化
    ssd1306_SetCursor(2, 6);//添加代码,设置显示光标位置
    ssd1306_WriteString("Hello IIC", Font_11x18, White);//添加代码,设置显示内容
    ssd1306_UpdateScreen();////添加代码,更新显示屏信息
修改之后的main函数如下图所示。编译工程,下载文件至开发板,运行效果如下图所示。

下载 (2).png
下载 (1).png

回帖(1)

jf_12960396

2021-11-21 11:23:12
为什么IIC地址是60呀
举报

更多回帖

发帖
×
20
完善资料,
赚取积分