欢迎光临散文网 会员登陆 & 注册

RA4M2开发(2)----基于IIC驱动OLED

2023-08-23 10:40 作者:记帖  | 我要投稿

概述

  1. 在e2studio中创建新的工程并导入必要的文件,包括I2C驱动代码和SSD1306 OLED显示驱动代码。

  2. 配置RA4M2的I2C接口,使其作为I2C master进行通信。

  3. 初始化SSD1306 OLED显示驱动代码,并配置显示屏的物理地址和分辨率。

  4. 通过I2C驱动代码将数据写入SSD1306 OLED显示屏。

  5. 在e2studio中运行代码并检查显示屏是否正常显示数据。

注意:具体的代码细节可能因项目而异,请确保遵循厂商的数据手册和应用程序示例。

最近在弄ST和瑞萨的课程,需要样片的可以加群申请:6_15061293 。


视频教学

https://www.bilibili.com/video/BV13o4y1N7BQ/

csdn课程

csdn课程更加详细。
https://edu.csdn.net/course/detail/36131

样品申请

https://www.wjx.top/vm/wBbmSFp.aspx#



硬件准备

首先需要准备一个开发板,这里我准备的是芯片型号R7FA4M2AD3CFP的开发板:


新建工程


工程模板

保存工程路径

芯片配置

本文中使用R7FA4M2AD3CFP来进行演示。

工程模板选择

时钟设置

开发板上的外部高速晶振为12M.

需要修改XTAL为12M。




IIC属性配置

查看手册,可以得知OLED的IIC地址为“b0111100” or “b0111101”,即0x3c或者0x3d。



在OLED的模块中,丝印上面写的地址是0x78(b0111 1000)或者0x7a(b0111 1010),是因为加了一位RW位,因为一般只要发送数据让屏幕进行显示。



IIC配置

配置RA4M2的I2C接口,使其作为I2C master进行通信。

查看开发板原理图,对应的IIC为P408和P409。

点击Stacks->New Stack->Connectivity -> I2C Master(r_sci_i2c)。


设置IIC的配置,需要注意从机的地址,在stm32等程序中写的是0x78,但是这里的地址位数是7位,故需要右移一位,变成0x3c。


R_SCI_I2C_Open()函数原型

R_SCI_I2C_Open()函数为执行IIC初始化,开启配置如下所示。


R_SCI_I2C_Write()函数原型

R_SCI_I2C_Write()函数是向IIC设备中写入数据,写入格式如下所示。


sci_i2c_master_callback()回调函数

对于数据是否发送完毕,可以查看是否获取到I2C_MASTER_EVENT_TX_COMPLETE字段。


控制与发送数据

对于发送数据,可以使用R_SCI_I2C_Write()函数,对于是否发送完毕,可以判断I2C_MASTER_EVENT_TX_COMPLETE != i2c_event,并且引入超时机制。

向0x3c设备写命令0x00的IIC_Command指令。



IIC写数据

向0x3c设备写数据0x40的IIC_Data指令。


驱动代码

若需要让OLED显示字符或者图片,需要添加驱动文件,添加方式如下。

主要需要添加如下四个文件。

oled.c:该文件包含控制OLED屏幕并与之通信的主要代码。具有初始化屏幕、绘制图形和文本以及更新显示的函数。

oled.h:这个头文件可以声明函数原型和任何在oled.c文件中使用的常量或变量。

bmp.h:该文件包含在OLED屏幕上呈现BMP图像文件的代码。

oledfont.h:这个文件包含在OLED屏幕上渲染自定义字体的代码,或者可能声明一个用于显示文本的字体表。

这四个文件附录在最后。

字符取模

由于单片机的flash比较吃紧,所以要显示汉字需要先进行取模。首先需要设置为字符模式。

取模软件设置。

设置完之后就可以取自己想要汉字的编码,输入完毕点击生成字模即可。

在oledfont.h中放入字库。

字体大小只有2个。

在hal_entry.c中添加显示


显示结果如下所示。


图片取模

设置为图形模式。


格式设置。


选择需要打开的文件。


打开的文件必须为bmp文件。


选择生成字模。


图片数据放在bmp.h中。

显示图片

主程序

oled.c

oled.h

oledfont.h

bmp.h


RA4M2开发(2)----基于IIC驱动OLED的评论 (共 条)

分享到微博请遵守国家法律