e2studio开发RA4L1(4)----GPIO输出
本篇文章主要介绍如何使用e2studio对瑞萨单片机进行GPIO输出,并以LED显示。
·
e2studio开发RA4L1.4--GPIO输出
概述
本篇文章主要介绍如何使用e2studio对瑞萨单片机进行GPIO输出,并以LED显示。
最近在瑞萨RA的课程,需要样片的可以加qun申请:925643491。

视频教学
https://www.bilibili.com/video/BV1htRsYAEyM
e2studio开发RA4L1(4)----GPIO输出
样品申请
https://www.wjx.top/vm/rCrkUrz.aspx
硬件准备
首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为R7FA4L1BD4CFP

参考程序
https://github.com/CoreMaker-lab/RA4L1
https://gitee.com/CoreMaker/RA4L1
源码下载
https://download.csdn.net/download/xinzuofang/91622346
新建工程

工程模板

保存工程路径

芯片配置
本文中使用R7FA4L1BD4CFP来进行演示。

工程模板选择

时钟设置
开发板上的外部高速晶振为8M.

需要修改XTAL为8M。

GPIO口配置
由下图我们可以得知,板子上有3个LED灯,同时需要给高电平才可以点亮,故以P601、P610、P609管脚为例,配置方式如下所示。

在e2studio中可以直接设置P601、P610、P609为输出口。

R_IOPORT_PinWrite()函数原型

故可以用R_IOPORT_PinWrite()函数进行配置,配置高电平如下所示。
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_01, BSP_IO_LEVEL_HIGH);
R_IOPORT_PortWrite()函数原型
R_IOPORT_PortWrite()函数是对一个Port的所有Pin脚进行写操作。

/*向端口BSP_IO_PORT_06的第1、9位写入1,10位写入0
* BSP_IO_PORT_06 是指定的端口。
* 0x0202 是要写入的值,其中位3设置为1(0x0202 在二进制表示中为 0000 0010 0000 0010)。
* 0x0602 是掩码,表示要更新的位是3位和第4位(0x0602 在二进制表示中为 0000 0000 0001 1000)。
*/
R_IOPORT_PortWrite(&g_ioport_ctrl, BSP_IO_PORT_06, 0x0202, 0x0602);
R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);
代码
在hal_entry()中添加如下。
while(1)
{
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_01, BSP_IO_LEVEL_HIGH);
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_10, BSP_IO_LEVEL_HIGH);
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_09, BSP_IO_LEVEL_HIGH);
// R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
//
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_01, BSP_IO_LEVEL_LOW);
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_10, BSP_IO_LEVEL_LOW);
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_09, BSP_IO_LEVEL_LOW);
// R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
/*向端口BSP_IO_PORT_06的第1、9位写入1,10位写入0
* BSP_IO_PORT_06 是指定的端口。
* 0x0202 是要写入的值,其中位3设置为1(0x0202 在二进制表示中为 0000 0010 0000 0010)。
* 0x0602 是掩码,表示要更新的位是3位和第4位(0x0602 在二进制表示中为 0000 0000 0001 1000)。
*/
R_IOPORT_PortWrite(&g_ioport_ctrl, BSP_IO_PORT_06, 0x0202, 0x0602);
R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);
/*向端口BSP_IO_PORT_06的第1、9位写入0,10位写入1
* BSP_IO_PORT_06 是指定的端口。
* 0x0400 是要写入的值,其中位10设置为1(0x0400 在二进制表示中为 0000 0100 0000 0000)。
* 0x0602 是掩码,表示要更新的位是3位和第4位(0x0602 在二进制表示中为 0000 0000 0001 1000)。
*/
R_IOPORT_PortWrite(&g_ioport_ctrl, BSP_IO_PORT_06, 0x0400, 0x0602);
R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);
}
更多推荐



所有评论(0)