【开箱】
瑞萨 RA2L1 开发板使用 R7FA2L1AB2DFL 芯片
基于 ARM Cortex M23 内核,主频 48M,Flash 256K,RAM 32K
片上资源已经足够满足很多应用
这款开发板包装精致,设置也很合理

跟 RA4E2 对比图:

【板载资源介绍】
板载 用户KEYx1、红色LED灯x2、触摸按键x2
【开发工具和环境】
支持 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 生成的初始代码就可以进行开发了,需要注意的是,RASC 生成的初始 Keil 代码在编译时会调用 RASC 进行代码生成,如果没安装 RASC, 需要把以下命令行关掉 :

由于是 ARM 内核,可以使用 J-LINK 调试工具,ST-LINK 试过无法烧录
【点灯】
LED 等接在 P103 和 P104,可以拉高这两个引脚的电平来点亮 LED 灯,通常大家使用的都是库函数来拉高引脚电平:
R_IOPORT_PinWrite(&IOPORT_CFG_CTRL, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH);
这里提供寄存器控制引脚的方法,简单高效,如下:
R_PORT1->POSR = (1<<0x03); // 拉高 P103
R_PORT1->PORR = (1<<0x03); // 拉低 P103
R_PORT1->POSR = (1<<0x04); // 拉高 P104
R_PORT1->PORR = (1<<0x04); // 拉低 P104
在 main 函数调用的 hal_entry 函数里添加以上代码即可
【点亮OLED显示屏】
瑞萨 RA2L1 支持硬件 I2C,为了省事美观,这里随便找 4 个 IO 口,插入 OLED 显示屏,如下:

使用了 P302、P201、P206、P208 这 4 个 IO 引脚,P302、P201 分别配置推挽输出,高电平和低电平,给 OLED 显示屏供电,P206、P208 作为 I2C 的 SCL 和 SDA
这里使用 IO 模拟 I2C 通信
驱动代码如下:
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
调用绘制函数在这 1K 的内存里绘制图形,绘制完更新到显示屏上,视频如开头