RA4M2開發(fā)(2)----基于IIC驅(qū)動(dòng)OLED
概述
在e2studio中創(chuàng)建新的工程并導(dǎo)入必要的文件,包括I2C驅(qū)動(dòng)代碼和SSD1306 OLED顯示驅(qū)動(dòng)代碼。
配置RA4M2的I2C接口,使其作為I2C master進(jìn)行通信。
初始化SSD1306 OLED顯示驅(qū)動(dòng)代碼,并配置顯示屏的物理地址和分辨率。
通過I2C驅(qū)動(dòng)代碼將數(shù)據(jù)寫入SSD1306 OLED顯示屏。
在e2studio中運(yùn)行代碼并檢查顯示屏是否正常顯示數(shù)據(jù)。
注意:具體的代碼細(xì)節(jié)可能因項(xiàng)目而異,請(qǐng)確保遵循廠商的數(shù)據(jù)手冊(cè)和應(yīng)用程序示例。
最近在弄ST和瑞薩的課程,需要樣片的可以加群申請(qǐng):6_15061293 。
視頻教學(xué)
https://www.bilibili.com/video/BV13o4y1N7BQ/

csdn課程
csdn課程更加詳細(xì)。
https://edu.csdn.net/course/detail/36131
樣品申請(qǐng)
https://www.wjx.top/vm/wBbmSFp.aspx#
硬件準(zhǔn)備
首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是芯片型號(hào)R7FA4M2AD3CFP的開發(fā)板:

新建工程

工程模板

保存工程路徑

芯片配置
本文中使用R7FA4M2AD3CFP來進(jìn)行演示。

工程模板選擇

時(shí)鐘設(shè)置
開發(fā)板上的外部高速晶振為12M.

需要修改XTAL為12M。

IIC屬性配置
查看手冊(cè),可以得知OLED的IIC地址為“b0111100” or “b0111101”,即0x3c或者0x3d。

在OLED的模塊中,絲印上面寫的地址是0x78(b0111 1000)或者0x7a(b0111 1010),是因?yàn)榧恿艘晃籖W位,因?yàn)橐话阒灰l(fā)送數(shù)據(jù)讓屏幕進(jìn)行顯示。

IIC配置
配置RA4M2的I2C接口,使其作為I2C master進(jìn)行通信。
查看開發(fā)板原理圖,對(duì)應(yīng)的IIC為P408和P409。

點(diǎn)擊Stacks->New Stack->Connectivity -> I2C Master(r_sci_i2c)。

設(shè)置IIC的配置,需要注意從機(jī)的地址,在stm32等程序中寫的是0x78,但是這里的地址位數(shù)是7位,故需要右移一位,變成0x3c。

R_SCI_I2C_Open()函數(shù)原型

R_SCI_I2C_Open()函數(shù)為執(zhí)行IIC初始化,開啟配置如下所示。
R_SCI_I2C_Write()函數(shù)原型

R_SCI_I2C_Write()函數(shù)是向IIC設(shè)備中寫入數(shù)據(jù),寫入格式如下所示。
sci_i2c_master_callback()回調(diào)函數(shù)
對(duì)于數(shù)據(jù)是否發(fā)送完畢,可以查看是否獲取到I2C_MASTER_EVENT_TX_COMPLETE字段。

控制與發(fā)送數(shù)據(jù)
對(duì)于發(fā)送數(shù)據(jù),可以使用R_SCI_I2C_Write()函數(shù),對(duì)于是否發(fā)送完畢,可以判斷I2C_MASTER_EVENT_TX_COMPLETE != i2c_event,并且引入超時(shí)機(jī)制。
向0x3c設(shè)備寫命令0x00的IIC_Command指令。
IIC寫數(shù)據(jù)
向0x3c設(shè)備寫數(shù)據(jù)0x40的IIC_Data指令。
驅(qū)動(dòng)代碼
若需要讓OLED顯示字符或者圖片,需要添加驅(qū)動(dòng)文件,添加方式如下。

主要需要添加如下四個(gè)文件。
oled.c:該文件包含控制OLED屏幕并與之通信的主要代碼。具有初始化屏幕、繪制圖形和文本以及更新顯示的函數(shù)。
oled.h:這個(gè)頭文件可以聲明函數(shù)原型和任何在oled.c文件中使用的常量或變量。
bmp.h:該文件包含在OLED屏幕上呈現(xiàn)BMP圖像文件的代碼。
oledfont.h:這個(gè)文件包含在OLED屏幕上渲染自定義字體的代碼,或者可能聲明一個(gè)用于顯示文本的字體表。
這四個(gè)文件附錄在最后。
字符取模
由于單片機(jī)的flash比較吃緊,所以要顯示漢字需要先進(jìn)行取模。首先需要設(shè)置為字符模式。

取模軟件設(shè)置。

設(shè)置完之后就可以取自己想要漢字的編碼,輸入完畢點(diǎn)擊生成字模即可。

在oledfont.h中放入字庫。
字體大小只有2個(gè)。
在hal_entry.c中添加顯示
顯示結(jié)果如下所示。

圖片取模
設(shè)置為圖形模式。

格式設(shè)置。

選擇需要打開的文件。

打開的文件必須為bmp文件。

選擇生成字模。

圖片數(shù)據(jù)放在bmp.h中。

顯示圖片
主程序
oled.c
oled.h
oledfont.h
bmp.h