91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RA MCU眾測(cè)寶典 | IIC之【RA2E1】IIC通信的OLED顯示

RA生態(tài)工作室 ? 2026-01-01 10:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RA MCU眾測(cè)寶典IIC專(zhuān)題上線啦!這次,瑞薩嵌入式小百科將和大家一起聚焦【瑞薩RA2E1】開(kāi)發(fā)板,一步步玩轉(zhuǎn)IIC通信OLED顯示。從IIC協(xié)議的核心原理、FSP中I2C Master的配置,到OLED驅(qū)動(dòng)函數(shù)編寫(xiě)、圖像文字取模與顯示,一起感受僅用SDA和SCL兩條線,就能實(shí)現(xiàn)設(shè)備間數(shù)據(jù)交互與可視化的便捷魅力。


開(kāi)啟寶典

簡(jiǎn)介

IIC通信協(xié)議

IIC(Inter-Integrated Circuit)即集成電路總線。它是一種串行通信總線,使用多主從架構(gòu),如圖所示。


32b67148-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


飛利浦Philips公司于二十世紀(jì)八十年代初設(shè)計(jì),最初是為了讓主板、嵌入式系統(tǒng)手機(jī)用以連接低速周邊設(shè)備。

自2006年10月1日起,使用IIC協(xié)議不需要支付專(zhuān)利費(fèi),但制造商仍然需要付費(fèi)以獲取IIC從屬設(shè)備地址。


IIC通信協(xié)議的功能特點(diǎn)如下:

只需要兩條總線線路;

沒(méi)有嚴(yán)格的波特率要求,例如使用RS232,主站生成總線時(shí)鐘;

所有組件之間存在簡(jiǎn)單的主/從關(guān)系連接到總線的每個(gè)設(shè)備都可通過(guò)唯一地址進(jìn)行軟件尋址;

IIC是真正的多主總線,提供仲裁和沖突檢測(cè)。


IIC使用兩根線進(jìn)行通信:一根時(shí)鐘線SCL,一根數(shù)據(jù)線SDA。


IIC將SCL處于高時(shí)SDA拉低的動(dòng)作作為開(kāi)始信號(hào),SCL處于高時(shí)SDA拉高的動(dòng)作作為結(jié)束信號(hào);


傳輸數(shù)據(jù)時(shí),SDA在SCL低電平時(shí)改變數(shù)據(jù),在SCL高電平時(shí)保持?jǐn)?shù)據(jù),每個(gè)SCL脈沖的高電平傳遞1位數(shù)據(jù)。


32c19064-e6b6-11f0-8ce9-92fbcf53809c.png

7-bit設(shè)備的數(shù)據(jù)傳輸


OLED顯示原理


OLED(Organic Electroluminescence Display)即有機(jī)發(fā)光二極管。


32e50a76-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


OLED由于同時(shí)具備自發(fā)光,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。

0.96英寸OLED基本參數(shù)

工作電壓:3.3~5V(內(nèi)置3.3V LDO,I2C通信接口電平是3.3V的);

像素點(diǎn)陣規(guī)模:128x64(128列,64行,共8192顆LED);

驅(qū)動(dòng)IC:SSD1306。

OLED模塊電路


330e64a2-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖

SSD1306驅(qū)動(dòng)電路


3331ee04-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


詳見(jiàn):oled I2c , SSD1306 Datasheet.

工程建立

新建工程

打開(kāi)e2 studio軟件,依次點(diǎn)擊:文件-新建-瑞薩 C/C++項(xiàng)目-Renesas RA


335cbe4a-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


依次進(jìn)行工程命名,路徑設(shè)置,F(xiàn)SP版本,目標(biāo)開(kāi)發(fā)板選擇,芯片型號(hào)選擇:R7FA2E1A72DFL,工具鏈選擇GNU ARM Embedded


336ad246-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖

工程配置

配置FSP。


33823f9e-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


配置IIC引腳。


3393705c-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


配置IIC參數(shù)。


注解

需要注意從機(jī)的地址,在STM32等程序中是0x78,這里的地址位數(shù)是7,因此需要右移一位,為0x3c。


33a18f66-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


配置完成后,點(diǎn)擊Generate Project Content生成工程,主要代碼位于src文件夾。


代碼完善

這里首先介紹部分重要函數(shù)的構(gòu)成。


關(guān)鍵函數(shù)

向設(shè)備寫(xiě)控制命令:OLED_WR_CMD()

左右滑動(dòng)查看完整內(nèi)容

//向設(shè)備寫(xiě)控制命令 voidOLED_WR_CMD(uint8_t cmd){ uint8_t ii[2]={0x00,0x00};
ii[1]=cmd; err =R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii,0x02,true); assert(FSP_SUCCESS== err); /* Since there is nothing else to do, block until Callback triggers*/ //while ((I2C_MASTER_EVENT_TX_COMPLETE != i2c_event) && timeout_ms) while((I2C_MASTER_EVENT_TX_COMPLETE!= i2c_event) && timeout_ms>0) { R_BSP_SoftwareDelay(1U,BSP_DELAY_UNITS_MICROSECONDS); timeout_ms--; } if(I2C_MASTER_EVENT_ABORTED== i2c_event) { __BKPT(0); } /* Read data back from the I2C slave */ i2c_event =I2C_MASTER_EVENT_ABORTED; timeout_ms =100; }


向設(shè)備寫(xiě)數(shù)據(jù):OLED_WR_DATA()

左右滑動(dòng)查看完整內(nèi)容

//向設(shè)備寫(xiě)數(shù)據(jù) voidOLED_WR_DATA(uint8_t data){ uint8_t ii[2]={0x40,0x00};
ii[1]=data; err =R_IIC_MASTER_Write(&g_i2c_master0_ctrl, ii,0x02,true); assert(FSP_SUCCESS== err); /* Since there is nothing else to do, block until Callback triggers*/ while((I2C_MASTER_EVENT_TX_COMPLETE!= i2c_event) && timeout_ms>0) { R_BSP_SoftwareDelay(1U,BSP_DELAY_UNITS_MICROSECONDS); timeout_ms--; } if(I2C_MASTER_EVENT_ABORTED== i2c_event) { __BKPT(0); } /* Read data back from the I2C slave */ i2c_event =I2C_MASTER_EVENT_ABORTED; timeout_ms =100; }


需要向:src文件夾添加4個(gè)文件,其中oled.c是函數(shù)驅(qū)動(dòng)文件,oled.h是頭文件,oledfont.h為文字字模文件,bmp.h為圖片字模文件。


圖像取模

步驟:

1.圖像預(yù)處理,將其尺寸裁剪為寬高比2:1,推薦使用:FastStone Image Viewer軟件;

2.使用Image2Lcd軟件生成BMP格式;

3.使用PCtoLCD軟件生成字模。


Image2Lcd

下載并運(yùn)行Image2Lcd軟件。


33bfce90-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


打開(kāi)目標(biāo)圖片,設(shè)置寬度為128像素,高度為64像素(若圖片不規(guī)則,需先進(jìn)行裁剪處理),輸出數(shù)據(jù)類(lèi)型可選擇BMP圖片,或直接生成C語(yǔ)言數(shù)組文件。


PCtoLCD2018

下載并運(yùn)行PCtoLCD2018軟件。


33cfcdae-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


打開(kāi)目標(biāo)BMP格式圖片,點(diǎn)擊齒輪圖標(biāo)進(jìn)入字模選項(xiàng)界面,參數(shù)設(shè)置完成后點(diǎn)擊確定,回到主界面,點(diǎn)擊生成字模,選擇并復(fù)制生成的字模至bmp.h文件。

左右滑動(dòng)查看完整內(nèi)容

#ifndefBMP_H_#defineBMP_H_constunsignedchar BMP1[] ={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};#endif


文字取模采用類(lèi)似方案,字模放置代碼如下。

左右滑動(dòng)查看完整內(nèi)容

constunsignedchar Hzk[][32]={{0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00},{0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"年",0*/{0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00},{0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00},/*"月",1*/{0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00},{0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00},/*"日",2*/};#endif/* OLEDFONT_H_ */


代碼。

左右滑動(dòng)查看完整內(nèi)容

#include"hal_data.h"#include"oled.h"#include"bmp.h"
FSP_CPP_HEADERvoidR_BSP_WarmStart(bsp_warm_start_event_tevent);FSP_CPP_FOOTER
i2c_master_event_ti2c_event = I2C_MASTER_EVENT_ABORTED;voidIIC_master_callback(i2c_master_callback_args_t*p_args){ i2c_event = I2C_MASTER_EVENT_ABORTED; if(NULL!= p_args) { /* capture callback event for validating the i2c transfer event*/ i2c_event = p_args->event; }}fsp_err_terr = FSP_SUCCESS;int timeout_ms =100;
voidhal_entry(void){ /*TODO:add your own code here */ /* IIC initicalized*/ err =R_IIC_MASTER_Open(&g_i2c_master0_ctrl, &g_i2c_master0_cfg); assert(FSP_SUCCESS == err); WriteCmd();// initialized while(1){ /*---------- Picture ------------*/ OLED_Clear();// clear screen OLED_DrawBMP(0,0,128,8,BMP1); R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); /*----------- Text ------------*/ OLED_Clear();// clear screen OLED_ShowString(0,0,"RA",16); OLED_ShowCHinese(16,0,0);//生 OLED_ShowCHinese(32,0,1);//態(tài) OLED_ShowCHinese(48,0,2);//工 OLED_ShowCHinese(64,0,3);//作 OLED_ShowCHinese(80,0,4);//室 OLED_ShowString(0,2,"2024.11.06",16); OLED_ShowString(0,4,"Renesas RA2E1",16); R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); }
#ifBSP_TZ_SECURE_BUILD /* Enter non-secure code */ R_BSP_NonSecureEnter();#endif}


33e31abc-e6b6-11f0-8ce9-92fbcf53809c.png

點(diǎn)擊可查看大圖


效果展示


IIC專(zhuān)題的精彩才剛剛開(kāi)始!下一期我們會(huì)繼續(xù)深挖IIC通信的更多實(shí)用場(chǎng)景。關(guān)注瑞薩嵌入式小百科,一起解鎖更多IIC通信的實(shí)戰(zhàn)玩法,讓嵌入式設(shè)備協(xié)同更高效!


瑞薩樣品/開(kāi)發(fā)板申請(qǐng)入口如下,可掃描二維碼或復(fù)制鏈接到瀏覽器獲得

申請(qǐng)入口

瑞薩樣品/開(kāi)發(fā)板申請(qǐng)入口:

https://jsj.top/f/AgUyYV

34044c32-e6b6-11f0-8ce9-92fbcf53809c.png


需要技術(shù)支持?

如您在使用瑞薩MCU/MPU產(chǎn)品中有任何問(wèn)題,可識(shí)別下方二維碼或復(fù)制網(wǎng)址到瀏覽器中打開(kāi),進(jìn)入瑞薩技術(shù)論壇尋找答案或獲取在線技術(shù)支持。

34199d62-e6b6-11f0-8ce9-92fbcf53809c.png

https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18916

    瀏覽量

    397832
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    309

    瀏覽量

    40628
  • RA
    RA
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    25300
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RA MCU測(cè)寶典 | I2C讀取EEPROM

    “RAMCU測(cè)寶典IIC專(zhuān)題繼續(xù)深耕!上一期我們用【RA-Eco-RA2E1】開(kāi)發(fā)板實(shí)現(xiàn)了IIC通信
    的頭像 發(fā)表于 01-13 18:05 ?6627次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>眾</b>測(cè)<b class='flag-5'>寶典</b> | I2C讀取EEPROM

    使用RA2E1 MCU和FSP實(shí)現(xiàn)超低設(shè)計(jì)

      RA2E1 MCU 組評(píng)估套件 FPB-RA2E1實(shí)施各種連接器,允許訪問(wèn) RA2E1 MCU、板載
    的頭像 發(fā)表于 04-25 10:10 ?2965次閱讀
    使用<b class='flag-5'>RA2E1</b> <b class='flag-5'>MCU</b>和FSP實(shí)現(xiàn)超低設(shè)計(jì)

    入門(mén)級(jí)RA系列RA2E1 MCU組用于低功耗和空間受限應(yīng)用

      RA2E1 組得到廣泛的第三方開(kāi)發(fā)工具以及瑞薩電子原創(chuàng)開(kāi)發(fā)環(huán)境的支持。EK-RA2E1評(píng)估套件使用戶能夠無(wú)縫評(píng)估 RA2E1 MCU 組的功能,并使用一流的靈活軟件包 (FSP)和
    的頭像 發(fā)表于 04-29 14:33 ?3200次閱讀
    入門(mén)級(jí)<b class='flag-5'>RA</b>系列<b class='flag-5'>RA2E1</b> <b class='flag-5'>MCU</b>組用于低功耗和空間受限應(yīng)用

    RA2E1數(shù)據(jù)手冊(cè)(英)

    RA2E1數(shù)據(jù)手冊(cè)(英)
    發(fā)表于 11-07 19:49 ?0次下載
    <b class='flag-5'>RA2E1</b>數(shù)據(jù)手冊(cè)(英)

    RA2E1硬件用戶手冊(cè)(英)

    RA2E1硬件用戶手冊(cè)(英)
    發(fā)表于 11-07 19:49 ?0次下載
    <b class='flag-5'>RA2E1</b>硬件用戶手冊(cè)(英)

    RA2E1數(shù)據(jù)手冊(cè)(中英)

    RA2E1數(shù)據(jù)手冊(cè)(中英)
    發(fā)表于 11-07 19:49 ?0次下載
    <b class='flag-5'>RA2E1</b>數(shù)據(jù)手冊(cè)(中英)

    RA2E1硬件用戶手冊(cè)(中英)

    RA2E1硬件用戶手冊(cè)(中英)
    發(fā)表于 11-07 19:49 ?7次下載
    <b class='flag-5'>RA2E1</b>硬件用戶手冊(cè)(中英)

    RA2E1開(kāi)發(fā)板資料

    RA2E1開(kāi)發(fā)板資料
    發(fā)表于 11-07 19:50 ?7次下載
    <b class='flag-5'>RA2E1</b>開(kāi)發(fā)板資料

    RA2E1 組數(shù)據(jù)表

    RA2E1 組數(shù)據(jù)表
    發(fā)表于 01-09 19:06 ?0次下載
    <b class='flag-5'>RA2E1</b> 組數(shù)據(jù)表

    RA2E1 組用戶手冊(cè):硬件

    RA2E1 組用戶手冊(cè):硬件
    發(fā)表于 01-09 19:06 ?4次下載
    <b class='flag-5'>RA2E1</b> 組用戶手冊(cè):硬件

    CPK-RA2L1/RA2E1 評(píng)估板入口

    CPK-RA2L1/RA2E1 評(píng)估板入口
    發(fā)表于 01-13 19:04 ?4次下載
    CPK-<b class='flag-5'>RA2L1</b>/<b class='flag-5'>RA2E1</b> 評(píng)估板入口

    RA2E1的16串BMS解決方案

    這期介紹的是RA2E1加RAA489206的16串BMS解決方案。
    的頭像 發(fā)表于 01-04 14:38 ?3400次閱讀
    <b class='flag-5'>RA2E1</b>的16串BMS解決方案

    RA2E1 組數(shù)據(jù)表

    RA2E1 組數(shù)據(jù)表
    發(fā)表于 06-30 18:50 ?0次下載
    <b class='flag-5'>RA2E1</b> 組數(shù)據(jù)表

    RA2E1 組用戶手冊(cè):硬件

    RA2E1 組用戶手冊(cè):硬件
    發(fā)表于 06-30 18:50 ?3次下載
    <b class='flag-5'>RA2E1</b> 組用戶手冊(cè):硬件

    CPK-RA2L1/RA2E1 評(píng)估板入口

    CPK-RA2L1/RA2E1 評(píng)估板入口
    發(fā)表于 07-03 19:44 ?0次下載
    CPK-<b class='flag-5'>RA2L1</b>/<b class='flag-5'>RA2E1</b> 評(píng)估板入口