单片机/MCU论坛
直播中

gtbestom

12年用户 247经验值
擅长:可编程逻辑 模拟技术 嵌入式技术 接口/总线/驱动 处理器/DSP 控制/MCU RF/无线
私信 关注
[文章]

【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED

【开箱】

瑞萨 RA4E2 开发板使用 R7FA4E2B93CFM 芯片

基于 ARM Cortex M33 内核,主频 100M,Flash 128K,RAM 40K

片上资源已经足够满足很多应用

美中不足的是缺少 SDIO,RGB,DVP,ETH 等接口,但是瑞萨 RA4E2 这些外设也足以满足大部分需求

这款开发板包装精致,设置也很合理

1.jpg

芯片功能框图如下:

1.png

【板载资源介绍】

板载 用户KEYx1、USB转串口x1、蓝色LED灯x8

【开发工具和环境】

支持 Keil、E2 Studio 开发工具

使用 Keil 开发,建议安装瑞萨 RASC(RA Smart Configurator)软件进行 Keil 工程生成和芯片功能配置(类似 STM32 的 MX 软件功能)

RASC 软件安装包 800M+,安装完占用超过 2G 磁盘空间,如果觉得麻烦并且费时,也可以不安装 RASC,但是需要安装 pack 包,pack 包只有 50M+,pack 包可以从 keil 官网下载(https://www.keil.arm.com/devices/),也可以从瑞萨官网下载(https://www.renesas.cn/zh/software-tool/flexible-software-package-fsp)*附件:Renesas.RA_DFP.5.6.0.pack.rar

安装完 pack 包,拷贝一份 RASC 生成的初始代码就可以进行开发了,这里提供一份我生成的初始代码:*附件:r7fa4e2b93cfm.rar ,需要注意的是,RASC 生成的初始 Keil 代码在编译时会调用 RASC 进行代码生成,如果没安装 RASC,需要把以下命令行关掉

3.png

使用 RASC 生成的初始代码,直接烧录是无法成功的,需要添加烧录选项,如下图所示:

2.png

官方也提供了部分示例工程供参考,这些工程基于 E2 Studio,使用 Keil 需要自行进行代码修改

由于是 ARM 内核,可以使用 J-LINK、DAP-LINK、ST-LINK 等众多调试工具

【点灯】

官方提供了点灯例程,路径在 \RA4E2_64PIN_example\RA4E2_LED,不是 Keil 工程,需要修改到 Keil 工程中,编译烧录就可以使用了

硬件连接如下:
2.jpg

这里以点亮 P113 为例,修改如下代码配置引脚模式:

4.png

在 main 函数调用的 hal_entry 函数里添加如下代码即可点亮 LED2:

5.png

效果如下图:

3.jpg

【点亮OLED显示屏】

瑞萨 RA4E2 支持硬件 I2C,开发板上有 I2C OLED 屏接口,可以接入 OLED 屏使用,如下:

4.jpg

这里使用 IO 模拟 I2C 通信,P100、P101 设置为开漏输出

驱动代码如下:

void OLED_SSD1306_Init(void)
{
    u8 i;
    OLED_SSD1306_IIC_Init();
    for (i=0; i<sizeof(OLED_SSD1306_CONFIG_TABLE); i++)
    {
        OLED_SSD1306_W_CMD(OLED_SSD1306_CONFIG_TABLE[i]);
    }
}
void OLED_SSD1306_CLEAR(u8 color)
{
    u8 i;
    for(i=0; i<8; i++)
    {
        OLED_SSD1306_SetXY(0, i);
        OLED_SSD1306_FillnB(color, 128);
    }
}
void OLED_SSD1306_Draw(void* buf, u8 x, u8 page, u8 w, u8 h)
{
    u8 i, *img;
    img = buf;
    for(i=0; i<(h>>3); i++)
    {
        OLED_SSD1306_SetXY(x, (u8)(page+i));
        OLED_SSD1306_WritenB(0x40, img, w);
        img+=w;
    }
}

【动态OLED显示屏】

驱动 OLED 只是应用的第一步,很多场景下,需要显示屏有不同的动态效果,例如显示动态波形,图像

这里开辟一块 10K 的缓存给 OLED 进行绘制使用,最少需要 1K

设计一个内存分配代码来动态申请内存:
6.png

设计一个图像管理代码来管理图像信息:
7.png

设计一个画布操作代码,来绘制图形:
8.png

然后调用这些函数进行绘制:
6.png

效果视频如下:

1

更多回帖

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