e2studio开发RA0E1.1--GPIO输出
概述
最近在弄ST和瑞萨RA的课程,需要样片的可以加群申请:925643491。
本篇文章主要介绍如何使用e2studio对瑞萨单片机进行GPIO输出,并以LED显示。
硬件准备
首先需要准备一个开发板,这里我准备的是芯片型号R7FA0E1073CFJ的开发板:
视频教学
https://www.bilibili.com/video/BV1Yr421J7sE/
e2studio开发RA0E1(1)----GPIO输出
样品申请
https://www.wjx.top/vm/rCrkUrz.aspx
源码下载
https://download.csdn.net/download/xinzuofang/89283520
新建工程
工程模板
保存工程路径
芯片配置
本文中使用R7FA0E1073CFJ来进行演示。
工程模板选择
时钟设置
开发板上的外部高速晶振为8M.
需要修改XTAL为8M。
GPIO口配置
由下图我们可以得知,板子上有3个LED灯,同时需要给高电平才可以点亮,故以P013和P014管脚为例,配置方式如下所示。
在e2studio中可以直接设置P013和P014为输出口。
R_IOPORT_PinWrite()函数原型
故可以用R_IOPORT_PinWrite()函数进行配置,配置高电平如下所示。
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_13, BSP_IO_LEVEL_HIGH);
R_IOPORT_PortWrite()函数原型
R_IOPORT_PortWrite()函数是对一个Port的所有Pin脚进行写操作。
/*向端口BSP_IO_PORT_00的第13位写入1,清除第14位
* BSP_IO_PORT_00 是指定的端口。
* 0x2000 是要写入的值,其中位13设置为1(0x2000 在二进制表示中为 0010 0000 0000 0000)。
* 0x6000 是掩码,表示要更新的位是第13位和第14位(0x6000 在二进制表示中为 0110 0000 0000 0000)。此操作将位13设置为1,并清除位14。
*/
R_IOPORT_PortWrite(&g_ioport_ctrl, BSP_IO_PORT_00, 0x2000, 0x6000);
R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
/*向端口BSP_IO_PORT_00的第14位写入1,清除第13位
代码
在hal_entry()中添加如下。
void hal_entry(void)
{
/* TODO: add your own code here */
while(1)
{
/* Set P013、P014 to High */
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_13, BSP_IO_LEVEL_HIGH);
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_14, BSP_IO_LEVEL_LOW);
// R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
//
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_13, BSP_IO_LEVEL_LOW);
// R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_14, BSP_IO_LEVEL_HIGH);
// R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
/*向端口BSP_IO_PORT_00的第13位写入1,清除第14位
* BSP_IO_PORT_00 是指定的端口。
* 0x2000 是要写入的值,其中位13设置为1(0x2000 在二进制表示中为 0010 0000 0000 0000)。
* 0x6000 是掩码,表示要更新的位是第13位和第14位(0x6000 在二进制表示中为 0110 0000 0000 0000)。此操作将位13设置为1,并清除位14。
*/
R_IOPORT_PortWrite(&g_ioport_ctrl, BSP_IO_PORT_00, 0x2000, 0x6000);
R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
/*向端口BSP_IO_PORT_00的第14位写入1,清除第13位
* BSP_IO_PORT_00 是指定的端口。
* 0x4000 是要写入的值,其中位14设置为1(0x4000 在二进制表示中为 0100 0000 0000 0000)。
* 0x6000 是掩码,表示要更新的位是第13位和第14位(0x6000 在二进制表示中为 0110 0000 0000 0000)。此操作将位13设置为1,并清除位14。
*/
R_IOPORT_PortWrite(&g_ioport_ctrl, BSP_IO_PORT_00, 0x4000, 0x6000);
R_BSP_SoftwareDelay (100, BSP_DELAY_UNITS_MILLISECONDS);
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}