e2studio开发RA4L1(1)---开发板测试

devtools/2025/3/14 12:15:02/

e2studio开发RA4L1.1-- 开发板测试

  • 概述
  • 视频教学
  • 样品申请
  • 产品特性
  • 参考程序
  • 源码下载
  • 硬件准备
  • 新建工程
  • 工程模板
  • 保存工程路径
  • 芯片配置
  • 工程模板选择
  • 时钟设置
  • GPIO口配置
  • UART配置
  • UART属性配置
  • 设置e2studio堆栈
  • e2studio的重定向printf设置
  • 主程序

概述

RA4L1 评估套件可以使用户能够无缝评估 RA4L1 系列LQFP100 封装的微控制器功能,RA4L1 MCU 具有低功耗功能,例如段码 LCD 显示驱动器和高级安全引擎,以及 RTC、ADC 和定时器。 这些 MCU 集成了 CAN FD、USB 2.0 FS、I2C/I3C 和低功耗 UART 等通信接口,因此非常适合用于工业自动化、家电、智能家居、消费品、楼宇/家居自动化和医疗/保健应用。

这里通过配置LED和UART输出进行简单测试。

最近在瑞萨RA的课程,需要样片的可以加qun申请:925643491。

在这里插入图片描述

视频教学

https://www.bilibili.com/video/BV1iGRpYvEfJ/

e2studio开发RA4L1(1)----开发板测试

样品申请

https://www.wjx.top/vm/rCrkUrz.aspx

产品特性

瑞萨电子 RA4L1 MCU 产品组,低功耗 32 位微控制器 (MCU),基于支持 TrustZone® 的 Arm® Cortex®-M33 (CM33) 内核,实现了低工作电压、低功耗与高性能的理想平衡。 RA4L1 的工作电压低至 1.6V,待机电流低至 1.65µA,并具有多种低功耗功能,用户能够根据应用要求来动态优化功耗/性能。

参考程序

https://github.com/CoreMaker-lab/RA4L1

https://gitee.com/CoreMaker/RA4L1

源码下载

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为R7FA4L1BD4CFP

在这里插入图片描述

新建工程

在这里插入图片描述

工程模板

在这里插入图片描述

保存工程路径

在这里插入图片描述

芯片配置

本文中使用R7FA4L1BD4CFP来进行演示。

在这里插入图片描述

工程模板选择

在这里插入图片描述

时钟设置

开发板上的外部高速晶振为8M.

在这里插入图片描述

需要修改XTAL为8M。

在这里插入图片描述

GPIO口配置

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

在这里插入图片描述
e2studio中可以直接设置P601、P610、P609为输出口。

在这里插入图片描述

UART配置

在这里插入图片描述

点击Stacks->New Stack->Connectivity -> UART(r_sci_uart)。

在这里插入图片描述

UART属性配置

在这里插入图片描述

e2studio_134">设置e2studio堆栈

printf函数通常需要设置堆栈大小。这是因为printf函数在运行时需要使用栈空间来存储临时变量和函数调用信息。如果堆栈大小不足,可能会导致程序崩溃或不可预期的行为。
printf函数使用了可变参数列表,它会在调用时使用栈来存储参数,在函数调用结束时再清除参数,这需要足够的栈空间。另外printf也会使用一些临时变量,如果栈空间不足,会导致程序崩溃。
因此,为了避免这类问题,应该根据程序的需求来合理设置堆栈大小。

在这里插入图片描述

e2studioprintf_147">e2studio的重定向printf设置

在这里插入图片描述

在这里插入图片描述

主程序

#include "hal_data.h"
#include <stdio.h>FSP_CPP_HEADER
void R_BSP_WarmStart(bsp_warm_start_event_t event);
FSP_CPP_FOOTERfsp_err_t err = FSP_SUCCESS;
volatile bool uart_send_complete_flag = false;
void user_uart_callback (uart_callback_args_t * p_args)
{if(p_args->event == UART_EVENT_TX_COMPLETE){uart_send_complete_flag = true;}
}
#ifdef __GNUC__                                 //串口重定向#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endifPUTCHAR_PROTOTYPE
{err = R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)&ch, 1);if(FSP_SUCCESS != err) __BKPT();while(uart_send_complete_flag == false){}uart_send_complete_flag = false;return ch;
}int _write(int fd,char *pBuffer,int size)
{for(int i=0;i<size;i++){__io_putchar(*pBuffer++);}return size;
}/*******************************************************************************************************************//*** 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 *//* Open the transfer instance with initial configuration. */err = R_SCI_UART_Open(&g_uart9_ctrl, &g_uart9_cfg);assert(FSP_SUCCESS == err);printf("hello world!\n");while(1){printf("Hello e2studio!\n");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 (500, 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 (500, BSP_DELAY_UNITS_MILLISECONDS);}#if BSP_TZ_SECURE_BUILD/* Enter non-secure code */R_BSP_NonSecureEnter();
#endif
}

http://www.ppmy.cn/devtools/167017.html

相关文章

计算机视觉算法实战——手势识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介&#xff1a;手势识别的价值与挑战 手势识别是连接人类自然行为与数字世界的核心交互技术&#xff0c;在智能设备控制、…

docker安装及使用介绍

文章目录 docker安装及使用安装 dockerdocker 常用命令docker 基本命令容器镜像卷网络命令Docker ComposeDocker 系统命令 在docker中安装ROS2 humble拉取 ROS 2 Docker 镜像运行 ROS 2 Docker 容器配置 ROS 2 环境接收外部 ROS 2 话题注意事项 ros1 和docker ros2通信使用 ros…

【贪心算法5】

力扣738.单调递增的数字 链接: link 思路 遇到c[i]>c[i1]则c[i]–,然后就是给c[i1]赋值‘9’&#xff1b;需要注意的是star初值问题&#xff0c;可见注释部分。 class Solution {public int monotoneIncreasingDigits(int n) {String s String.valueOf(n);char[] c s.…

接口测试笔记

7、Mock接口框架 Mock介绍 mock用来模拟接口&#xff0c;这里mock用的是moco框架&#xff0c;moco框架是github上的一个开源项目&#xff0c;可模拟HTTP、HTTPS、Socket协议。 工作原理 Moco的启动及第一个Demo 创建配置文件startup.json启动服务器 java -jar moco-runner…

第2章、WPF窗体及其属性

1、窗体的宽与高。 2、启动窗体设置 3、窗体的启动位置设置 4、窗体图标更换 5、应用程序的图标更改 6、 7、窗体属性汇总&#xff1a; AllowsTransparency 类型: bool 描述: 该属性决定窗口是否可以有透明效果。如果设置为true&#xff0c;窗口的背景必须设置为Transpar…

【反无人机目标检测】DRBD-YOLOv8

DRBD-YOLOv8&#xff1a;A Lightweight and Efficient Anti-UAV Detection Model DRBD-YOLOv8&#xff1a;一种轻量高效的无人机检测模型 0.论文摘要 摘要&#xff1a;由于对无人飞行器&#xff08;UAV&#xff09;相关的安全和隐私问题的日益关注&#xff0c;反无人机检测系统…

嵌入式八股C语言---面向对象篇

面向对象与面向过程 面向过程 就是把整个业务逻辑分成多个步骤,每步或每一个功能都可以使用一个函数来实现面向对象 对象是类的实例化,此时一个类就内部有属性和相应的方法 封装 在C语言里实现封装就是实现一个结构体,里面包括的成员变量和函数指针,然后在构造函数中,为结构体…

双 Token 无感刷新机制在前后端分离架构中实现

在前后端分离的架构中&#xff0c;双 Token 无感刷新是一种常见的身份验证机制&#xff0c;用于在 Access Token 过期时&#xff0c;通过 Refresh Token 自动获取新的 Access Token&#xff0c;从而避免用户频繁登录。 1. 双 Token 无感刷新的核心流程 1.1 核心流程 用户登录&…