这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 【瑞萨RA2E1开发板】:使用定时器完成LED灯闪烁

共4条 1/1 1 跳转至

【瑞萨RA2E1开发板】:使用定时器完成LED灯闪烁

助工
2025-03-04 20:08:16     打赏

  硬件:RA2E1开发板

  软件:e2studio Version: 2024-10 (24.10.0)

  调试器:J-link V9(我这边有V8的调试器,调试时候遇到点问题,又买了一个V9)

一:RA2E1的开发板知识介绍  

1.1 开发板整体介绍 

   RA-Eco-RA2E1-48PIN-V1.0是一款基于48 MHz Arm® Cortex®-M23 内核架构的核心板,主控芯片为R7FA2E1A72DFL。RA2E1 产品群是 RA 系列的入门级单芯片微控制器,基于48MHz Arm® Cortex®-M23 内核,具有高达 128kB 的代码闪存以及 16kB 的 SRAM 。 这款产品采用优化的制程和瑞萨电子的低功耗工艺技术,是业界一流水平的超低功耗微控制器。 RA2E1 产品支持 1.6V 至 5.5V 的宽工作电压范围和多种封装,如 LQFP、QFN、LGA、BGA 和 WLCSP。 RA2E1 可与 RA2L1 产品群引脚和外围设备兼容,特别适用于电池供电应用以及空间受限应用,以及其他需要高性能和低功耗的系统。

1.2 产品特性:

1个复位按键

1个自定义按键

2个触摸按键

2个LED

板载USB转TTL模块

板载SWD接口,方便用户调试与下载

48MHz Arm Cortex-M23

64kB 的闪存以及 16kB SRAM

4kB 数据闪存,提供与 EEPROM 类似的数据存储功能

48引脚封装

1.6V - 5.5V 的宽工作电压范围

增强型电容式触摸感应单元 (CTSU)

12 位 ADC,LPACMP,温度传感器

32 位通用 PWM 定时器,16 位通用 PWM 定时器,低功耗异步通用定时器

实时时钟

SCI(UART、简单 SPI、简单 I2C)

独立的 SPI 接口/I2C 多主接口

安全功能

加密功能

二:瑞萨定时器相关知识介绍

瑞萨定时器分为通用定时器(GPT)和低功耗定时器(AGT),这里我使用通用定时器进行开发。

通用定时器(GPT)知识介绍:

通用 PWM 定时器(GPT,General PWM Timer)是 RA MCU 的其中一种 32/16 位的定时器外设。在 GPT 当中,可分为 GPT32 和 GPT16,它们最主要的区别是计数器的不同。GPT32 是 32 位的定时器,包含的计数器是 32 位的,所能计数的范围为:0~0xFFFF_FFFF;而 GPT16 是 16 位的定时器,包含的计数器是 16 位的,所能计数的范围为:0~0xFFFF。

定时器(Timer)最基本的功能就是定时,比如定时发送串口数据、定时采集 AD 数据、定时触发中断处理其它事务等等。如果把定时器与 GPIO 引脚结合起来使用的话可以实现更加丰富的功能,可以对输入信号进行计数,可以测量输入信号的脉冲宽度,可以输出单个脉冲、PWM 等波形,等等。通过定时器生成 PWM 波形信号来控制电机状态是工业控制的普遍方法,这方面知识非常值得深入了解。

GPT模块可用于计数事件、测量外部输入信号、作为通用计时器并产生周期性中断、以及输出周期性或 PWM 信号到 GTIOC引脚。GPT 也可用于输出单个脉冲,但是注意这是通过软件来实现的,GPT硬件本身不支持输出单个脉冲(One-Shot)功能。当使用单个脉冲(One-Shot)模式时必须要开启中断,计时器需要在脉冲周期结束后在ISR 中断服务函数中被停止。

系统框图如下所示:

3.png

三:软件编写

目的:使用 GPT 定时器进行定时并产生中断请求触发中断,然后通过这个中断,切换 LED 的电平,完成板载LED灯的闪烁。

3.1 新建工程:

3.1.1 打开e2s 软件新建工程

1.png

3.1.1  选择设置 瑞萨的工程目录

2.png

3.1.2  填写软件的工程名字,默认位置为安装目录下

3.png

3.1.4 这里设置一下瑞萨的FSP库文件,使用的开发板和工具链(这个很重要),点击下一步

4.png

3.1.5  为了方便学习,这里我选择不适用rtos ;

5.png

3.1.6   这里我们默认配置一下就好,我选择的闪烁灯这个程序

6.png

四:软件编写如下所示:

4.1 板载LED灯原理图

7.png

如上图所示,这里使用P103和P104的作为LED控制引脚,从原理图可知,当单片机引脚拉高时,板载LED灯亮起;当单片机引脚拉低时,板载LED灯熄灭;在固定的时间频率下,翻转IO口电平,实现LED闪烁的功能。

软件配置如下:

8.png

配置P103引脚为输出模式,默认输出高电平,

4.2 通用定时器的配置如下所示:

9.png

配置好如上所示即可,我们配置定时器中断为100ms,即每100ms 进入一次中断;

五:软件编写:

5.1 gpio 初始化部分:

#define LED1_TOGGLE  R_PORT1->PODR ^= 1<<(BSP_IO_PORT_01_PIN_03 & 0xFF)

5.2 定时器软件代码部分

打开定时器

/* Initializes the module. */
err = R_GPT_Open(&g_timer0_ctrl, &g_timer0_cfg);
/*    Handle any errors. This function should be defined by the user.*/
assert(FSP_SUCCESS == err);
/*     Start the timer.*/
(void) R_GPT_Start(&g_timer0_ctrl);

编写定时器回调函数

void timer0_callback(timer_callback_args_t *p_args)
{
/* TODO: add your own code here */
if (TIMER_EVENT_CYCLE_END == p_args->event)
{
if(Rx_flag==1)
{
//                printf_usart();
Rx_flag=0;
}
LED1_TOGGLE ;
}
}

六:实物验证如下:

WeChat_20250304201427 00_00_00-00_00_30.gif

下载验证:按下板载的复位按键,可以看到 板载的LED灯在程序正常运行后,可以按照100ms的时间间隔进行闪烁。

七:编写心得体会

    自己呢也是有幸获得了参赛资格。之前使用keil5的编程工具,对其开发。还好keil5也可以配合FSP库的开发,本次使用e2s对开发板进行编程,这里自己配置的时候也是按照开发文档一步步的进行配置,可以说视频讲解的很详细,通俗易懂。从开始的板载的LED灯控制,其他外设的学习,在自己遇到困难时,去看视频、资料、到论坛上去查看大佬们有没有解决的办法、在软件调试的时,使用FSP软件配置底层驱动代码真的时很方便,可以说相对于其他的mcu芯片,瑞萨有着很多的优势,通过本次的活动,在一定的程度上,提高的自己的动手能力,也学到了瑞萨的许多的珍贵实践、开发的经验。稍后对其他外设进行调试。




关键词: 瑞萨     fsp    

专家
2025-03-04 22:32:01     打赏
2楼

感谢分享


专家
2025-03-04 22:33:06     打赏
3楼

感谢分享


专家
2025-03-04 22:41:09     打赏
4楼

感谢分享


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]