03 瑞萨单片机 点灯大师

配置FSP库

修改系统晶振

在配置IO前,我们首先要对系统时钟进行设置,瑞萨的默认配置外部晶振为10M,然而大部分的开发板都是24M,所以要进行修改
在这里插入图片描述
在这里插入图片描述

配置引脚

将引脚配置为输出模式(默认低电平)
在这里插入图片描述
如何就可以保存,生成代码。

IO操作函数解析

操作IO的函数声明在r_ioport.h文件中

在这里插入图片描述

常用的操作函数

R_IOPORT_Open()

用于打开I/O端口。它的作用是初始化并打开指定的I/O端口,以便进行读写操作。该函数需要传入一个参数,即I/O端口的标识符。
其与STM32不同 STM32需要开启时钟并初始化对应引脚,而瑞萨配置多个IO的时候,也仅需调用一次该函数初始化即可

R_IOPORT_Close()

关闭IO端口,与R_IOPORT_Open()对应

R_IOPORT_PinCfg()

用于配置指定引脚的输入/输出模式、上拉/下拉电阻、中断触发方式等参数。它的作用是根据用户的需求,对单个引脚进行灵活的配置,以满足不同的应用场景。

第三个参数cfg的选择范围为
在这里插入图片描述

R_IOPORT_PinRead()

读取指定IO状态

R_IOPORT_PinWrite()

设置指定IO状态

编写IO控制代码

首先进行IO初始化

/* LED初始化函数 */
void LED_Init(void)
{
    /* 初始化配置引脚(这里重复初始化了,可以注释掉) */
    R_IOPORT_Open (&g_ioport_ctrl, g_ioport.p_cfg);
}

声明宏定义方便操作

可根据需求修改引脚
注意 端口A实际为PORT_10

/* LED引脚置低电平 LED灯亮 */
#define LED1_ON     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_02_PIN_07, BSP_IO_LEVEL_LOW)
#define LED2_ON     R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_00, BSP_IO_LEVEL_LOW)

/* LED引脚置高电平 LED灯灭 */
#define LED1_OFF    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_02_PIN_07, BSP_IO_LEVEL_HIGH)
#define LED2_OFF    R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_00, BSP_IO_LEVEL_HIGH)

/* 使用寄存器来实现 LED灯翻转 */
#define LED1_TOGGLE R_PORT2->PODR ^= 1<<(BSP_IO_PORT_02_PIN_07 & 0xFF)
#define LED2_TOGGLE R_PORT5->PODR ^= 1<<(BSP_IO_PORT_05_PIN_00 & 0xFF)

主函数调用

void hal_entry(void)
{
    /* TODO: add your own code here */

    LED_Init(); // LED 初始化
    Key_Init(); // 按键初始化

    while(1)
    {
        LED1_TOGGLE;
        
        R_BSP_SoftwareDelay (500,BSP_DELAY_UNITS_MICROSECONDS);
    }


#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值