79|1

11

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【Follow me第二季第3期】入门任务 [复制链接]

  本帖最后由 一只小跳帽 于 2024-12-8 21:13 编辑

瑞萨MCU 的安装环境为官方的 e2 studio 搭建涉及多个步骤和组件,以下是一个详细的分享:

e2 studio (简称为 e2 或 e2s)是瑞萨电子的一款包含代码开发、构建和调试的开发工具。 e2 studio 基于开源Eclipse IDE和与之相关的C/C++开发工具(CDT)。 e2 studio 托管了瑞萨的FSP灵活配置软件包,这是一个用于支持瑞萨MCU开发的固件库。 通过使用FSP库,我们可以轻松配置和管理瑞萨MCU,从而轻松实现复杂的应用程序。

一、准备工作

  1. 下载必要的软件包

二、安装e2 studio 

  1. 安装e2 studio 
    • 解压缩下载的安装包。
    • 双击运行安装程序,等待安装程序加载完毕。
    • 选择安装路径(如有需要),并勾选同意许可协议。
    • 选择在开始菜单创建快捷方式,然后点击“Install”开始安装。
    • 安装完成后,在开始菜单或桌面上找到e2 studio 的快捷方式。
    •  

三、安装和配置其他开发工具

  1. 安装FSP(Flexible Software Package)
    • FSP是瑞萨提供的一套灵活的软件开发包,它包含了各种外设驱动和中间件。
    • 从瑞萨官方网站下载FSP安装包,并按照提示完成安装过程。
    • 在你的开发环境中配置FSP,以便使用其中的外设驱动和中间件。

五、创建和编译项目

  1. 创建新项目
    • 在你的IDE(如MDK、Keil等)中,创建一个新的瑞萨MCU项目。
    •  
    • 指定项目名称、开发板型号、芯片型号和工具链等参数。这里可以选择版本 开发板的型号 和使用的工具链 还有调试方式 为板载的jlink
    •  
  2. 配置项目
    • 根据你的需求,配置项目的时钟、引脚分配、外设驱动等参数。
    • 使用FSP配置工具或RASC来简化配置过程。
    •  
    • 双击 configuration.xml 即可进行图形化的配置 
    •   这里的 clocks 可以配置时钟 pins 可以配置引脚 等功能
  3. 编译和调试
    • 编译你的项目,确保没有错误。
    •   使用 上方的锤子进行编译 使用虫子按钮进行debug和download
    • 使用IDE提供的调试工具进行调试,查看寄存器和外设的状态。

六、烧录程序到开发板

  1. 连接开发板
    • 使用USB线或其他连接方式将你的开发板连接到计算机上。
  2. 烧录程序
    • 在IDE中选择适当的烧录工具(如J-Link、dap-link等)。
    • 配置烧录参数,如烧录速度、烧录地址等。
    • 开始烧录程序,并等待烧录完成。
  3. 验证程序
    • 烧录完成后,断开开发板与计算机的连接。
    • 给开发板上电,观察LED指示灯或其他外设的状态,以验证程序是否正确运行。

通过以上步骤,可以成功地搭建瑞萨MCU的安装环境,并开始进行开发工作。请注意,不同型号的瑞萨MCU和开发板可能具有不同的配置要求,因此在实际操作中需要根据具体情况进行调整。

下面完成入门的第二个任务 Blink

一、准备工作

  1. 硬件准备
    • 一块瑞萨MCU开发板(EK-RA6M5)。
    • 一根USB连接线(用于连接开发板和计算机)

二、新建工程

选择Rensesas RA 进行新建

 

 

输入创建的工程名字 这里选择输入Blink

 

这里选择对应的开发板就好了

 

然后一直下一步就好啦

 

三、编写代码

  1. 使用Smart Configurator配置引脚

    • 打开Smart Configurator,创建一个新的工程。
    • 选择你的MCU型号和开发板。
    • 在引脚配置中,找到与LED相连的引脚,并将其配置为输出模式。
    • 这里我查找原理图查看我们的LED灯连接到008 007 006 三个引脚
    •   按照下方的图进行配置  为输出 推挽 进行生成代码  
  2. 编写LED闪烁逻辑
    • 这里我们需要在hal_entry.c 文件中写自己的逻辑但是本质上还是在main函数中写的
    •  
    • 在对应的函数中写主要逻辑
    •  
    • 下面就是打开对应功能 并且使用官方的延迟函数进行延时 同时在延时的前后使用官方对端口进行打开和关闭对应的代码如下
    • void hal_entry(void)
      {
          /* TODO: add your own code here */
      
      #if BSP_TZ_SECURE_BUILD
          /* Enter non-secure code */
          R_BSP_NonSecureEnter();
      #endif
          //打开对应功能
          R_IOPORT_Open(&g_ioport_ctrl, &g_ioport.p_cfg);
          //写主循环
          while(1)
          {
              R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_08, BSP_IO_LEVEL_HIGH);
              R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_07, BSP_IO_LEVEL_HIGH);
              R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_HIGH);
              R_BSP_SoftwareDelay(1,BSP_DELAY_UNITS_SECONDS);
              R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_08, BSP_IO_LEVEL_LOW);
              R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_07, BSP_IO_LEVEL_LOW);
              R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_LOW);
              R_BSP_SoftwareDelay(1,BSP_DELAY_UNITS_SECONDS);
          }
      
      
      }
      

      这里R_BSP_SoftwareDelay() 函数第一个参数为1 第二个参数 为秒 因此就是一秒组合 下面进行下载和验证  编译使用上方说明的小锤子 下载使用上方的虫子图标下载完成后我们查看现象如下所示

    • VID20241208210701

       

下面完成入门的第三个任务 按键

其实任务前面是相同的创建工程下面直接进行到配置阶段

首先通过原理图查看按键的引脚

 

 

我们使用引脚1 005 我门做一个程序为按下一次按钮将LED灯的状态进行反转

下面进行配置

配置为输入模式 不使用中断 上拉输入 我们分析原理图当接收到高时为未按下状态 当为低时为按下状态

 

 

代码如下


//读取按键状态
bsp_io_level_t Read_Button()
{
    bsp_io_level_t button_value = BSP_IO_LEVEL_HIGH ;
    R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_05, &button_value);
    return button_value;
}

/*******************************************************************************************************************//**
 * main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used.  This function
 * is called by main() when no RTOS is used.
 **********************************************************************************************************************/


void hal_entry(void)
{

    /* TODO: add your own code here */
    bsp_io_level_t LED_value = BSP_IO_LEVEL_HIGH ;

#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif


    R_IOPORT_Open(&g_ioport_ctrl, &g_ioport.p_cfg);
    while(1)
    {
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_08, LED_value);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_07, LED_value);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, LED_value);
        if(BSP_IO_LEVEL_LOW==Read_Button())
        {
            R_BSP_SoftwareDelay(50,BSP_DELAY_UNITS_MILLISECONDS);
            if(BSP_IO_LEVEL_LOW==Read_Button())
            {
                //判断为真的按下 进行状态反转
                if(BSP_IO_LEVEL_HIGH==LED_value)
                {
                    LED_value=BSP_IO_LEVEL_LOW;
                }else
                {
                    LED_value=BSP_IO_LEVEL_HIGH;
                }
                while (BSP_IO_LEVEL_HIGH != Read_Button());

            }

        }

    }





}

逻辑为当检测到按钮输入为低时进行滤波过了50ms还为低时此时表示按钮为真正的按下 将LED灯的状态进行改变 并且等待按钮抬起将改变后的值写入到LED灯中 最后的效果如下所示

VID20241208211234

 

 

 

总结

通过本次学习,我对瑞萨的GPIO操作有了更深入的理解。在未来,我计划继续深入学习微控制器的其他功能,如串口通信、ADC(模数转换)等,并尝试将这些知识应用到实际的项目中。同时,更好的完成后面的任务

下面是本次整个任务的录像视频解说 有一些很细节的地方我将在视频中和大家一起分享


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最新回复

瑞萨MCU 单片机值得慢慢学习,检查每天学习,一定可以成功   详情 回复 发表于 3 天前
点赞 关注
 
 

回复
举报

5

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

瑞萨MCU 单片机值得慢慢学习,检查每天学习,一定可以成功

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表