1.3实操瑞萨开发板RA2L1 MCU上的资源
文章目录
前言
在总目录上面说过,要玩一下boot+can升级上位机+uds诊断,结果发现评估板上没有can控制器,好家伙,直接省了买pcan的钱,看来瑞萨主打的就是免费,到现在一分钱没花,真省钱啊,实在不行后面去买can控制器模块吧,先玩点基础的开开胃吧。那么今天就点亮LED吧。
一、硬件原理图和PIN脚配置
工程的建立在前面已经说了,有什么问题可以点击1.2搭建RA2L1 MCU开发环境查看。
1.1硬件原理图和PIN脚配置
通过原理图可知,板子上有2个LED灯,同时需要给高电平才可以点亮。即需要把P501和P502两个pin配置成高电平输出模式。
P501如下图配置,P02同理。
1.2生成的PIN脚配置代码
Generate Project Content后,/LED_GPIO/ra_gen/pin_data.c中对应的初始化代码。
二、GPIO操作的API
2.1 API的查找方式
API的查找方式如下图
想在某行code里使用哪个APi就拖拽到对应的code里即可
2.2API使用方法
主要使用下面的API函数
2.2.1设置一个引脚的输出或高或低函数
fsp_err_t R_IOPORT_PinWrite (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t level)
函数名:R_IOPORT_PinWrite
p_ctrl:句柄
pin:引脚定义,可以打开bsp_io_port_pin_t的声明去看所有引脚的定义
level:引脚的级别,也就是输出高低电平。打开bsp_io_level_t声明可以看高低电平的宏定义。
之后想做一个跑马灯的程序,还需要个延时函数
2.2.2瑞萨官方延时函数
void R_BSP_SoftwareDelay (uint32_t delay, bsp_delay_units_t units)
函数名:R_BSP_SoftwareDelay
delay:要延迟的“单位”数量。
units:延迟的“单位”(eg:秒,毫秒,微秒)
二、跑马灯代码实现
现象:先LED1灯亮100ms,之后LED2灯亮100ms,依次循环。
上代码。
while(1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_01, BSP_IO_LEVEL_HIGH);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_02, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_01, BSP_IO_LEVEL_LOW);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_02, BSP_IO_LEVEL_HIGH);
R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
}
工程的烧录和调试在前面已经说了,有什么问题可以点击1.2搭建RA2L1 MCU开发环境查看。
总结
完成了跑马灯实验,主要还是讲解如何通过瑞萨e2studio配置引脚。
(瑞萨的LED为什么这样耀眼,我的眼睛啊。主打真材实料。)