RA6E2 微控制器评测报告
1. 使用体验
入门有一定难度,社区资源较少,但官方文档齐全,开发板功能丰富,适合中高级开发者。没想到点个灯点了半天,对 e2studio 不太熟悉,以及瑞萨的开发板的引脚命名和外设命名与其他(STM32、TI)有一定差别,我第一次发现有一定难度。不过瑞萨的配置比较精细,这也是我觉得比较难的原因,初学者可能得了解更多,配置更多才能使用。
有一个比较好的方面是,在 e2studio 中有一个 HAL 库支持,可以看到已经配置外设的一些函数,通过这些函数,可以了解外设的配置,并便捷地传递参数。我尝试了进行 PWM 驱动电机和 UART,移植了大佬的代码后,可以实现相应的功能,注意多多查阅瑞萨相关的资料,瑞萨小百科的公众号可以查阅到不少入门的资料。该套板子支持的资源不多,我未能找到相关的例程进行学习,这也是一个比较大的问题。毕竟是进行测评,希望能够找到一些例程进行学习,这样对于初学者来说会更加友好。
2. 样片申请和测试
在瑞萨电子的官方网站和微信公众号上,用户可以免费申请 RA6E2 的样片进行试用。完成测评后,用户还可以免费获得开发板或样片。测评结果会通过邮件发送,需回复地址信息以便邮寄。
收到快递后,包装包含一个白色的小盒子,其中有两张关于 RA6E2 的介绍卡片和 RA6E2 样片。介绍卡片提供了 RA6E2 的主要特点、应用场景、引脚信息和板载外设的描述。
在测评前,需要对瑞萨公司进行了解并查阅相关资料。由于瑞萨的资料在一般博客上不易找到,建议直接在官网查询(官网资料最为全面和精准)。在 瑞萨电子官网 上,可以一站式找到与 RA6E2 相关的所有资料。
3. 瑞萨官网介绍
瑞萨电子的官方网站 (Renesas) 提供了丰富的产品信息、技术支持、开发工具和应用实例。用户可以在官网上找到最新的产品规格、开发指南、应用笔记及技术文档。官网主要模块如下:
3.1 设计和开发
瑞萨提供多种设计和开发资源,帮助工程师快速构建和测试原型。主要内容包括:
- 开发板及套件:提供多种开发板和评估套件,方便工程师快速上手进行项目测试和开发。
- 开发工具:包括集成开发环境、调试工具和编程工具,支持多种编程语言和开发需求,提升开发效率。
- 封装:提供产品封装信息,包括引脚图和尺寸图,确保设计与制造的高效对接。
- 软件和驱动程序:提供与硬件兼容的软件和驱动程序,确保设备的顺畅运作,支持多种操作系统。
- 软件与工具:包括模拟软件、配置工具和测试工具,方便开发者在设计过程中进行优化。
- 交叉检索:帮助用户快速找到符合条件的产品和解决方案,提升设计效率。
- GADGET RENESAS 创客资源:为创客和开发者提供的资源,支持快速原型开发和创新设计。
3.2 特色设计工具
瑞萨官网提供了多款特色设计工具,旨在简化设计流程、提高效率,包括:
- 快速连接平台:用于快速搭建和连接系统组件的平台,适用于测试和原型设计。
- 云上的实验室:提供云端的测试和模拟环境,支持远程测试和验证。
- PowerCompass 多轨设计工具:帮助在多电源轨系统中优化电源设计,提高系统效率。
- PowerNavigator:用于电源管理和配置的工具,支持控制和监控系统电源状态。
- Timing Commander:精确的时序控制工具,帮助设计者确保系统中的时序控制。
3.3 内容和培训
瑞萨提供丰富的内容和培训资源,帮助用户深入了解产品,提升技术能力:
- 博客:提供关于瑞萨产品、应用案例和技术趋势的资讯,帮助用户紧跟前沿。
- 文档和下载:官网提供详细的产品文档、手册和技术规范,供用户下载参考。
- 培训和教程:多种形式的培训课程和在线教程,帮助用户快速掌握产品特性和应用技巧。
- 视频:提供丰富的技术视频,包括产品介绍、应用指南和培训视频,便于用户随时学习。
- 在线研讨会:定期举行的在线研讨会,涵盖最新技术趋势和产品应用,用户可与专家互动交流。
4. 引言
瑞萨电子(Renesas Electronics)是一家全球领先的微控制器和系统单芯片解决方案提供商。RA6E2 系列微控制器基于 200MHz 的 Arm Cortex-M33 内核,集成了丰富的外设接口和强大的安全特性。本文旨在评估 RA6E2 的性能,尤其是在应用于距离传感器、温湿度传感器及舵机控制的场景下。
5. 瑞萨 RA6E2 概述
瑞萨 RA6E2 系列的主要特点包括:
- 200MHz 的 Arm Cortex-M33,具有 TrustZone 功能,提供增强的安全性。
- 128KB - 256KB 的闪存和 40KB 的 SRAM,满足多种应用需求。
- 4KB 数据闪存,类似 EEPROM 数据存储功能,方便存储临时数据。
- 1KB 待机 SRAM,降低功耗,延长设备的使用寿命。
- 可从 32 个引脚扩展到 64 个引脚的封装,适应不同规模的应用设计。
- 支持 USB 2.0 全速、CAN FD、I3C、HDMI CEC、SSI 和 Quad SPI 等多种通信接口。
- 12 位 A/D 转换器和 D/A 转换器,适合精确的模拟信号处理。
- 通用 PWM 定时器,便于控制舵机等设备。
6. 相关的函数调用
6.1 I/O Port 控制函数详细说明
6.1.1 R_IOPORT_Open
- 功能:初始化 I/O 端口控制模块,配置相关资源以便后续的 I/O 操作。
- 函数定义:
fsp_err_t R_IOPORT_Open(ioport_ctrl_t *p_ctrl, const ioport_cfg_t *p_cfg)
- 参数:
p_ctrl
:指向 I/O 控制块的指针,用于存储 I/O 控制模块的状态信息。p_cfg
:指向 I/O 配置结构体的指针,包含端口初始配置的详细信息。
- 使用说明:在使用 I/O 端口进行读写之前必须调用此函数完成初始化。
6.1.2 R_IOPORT_Close
- 功能:关闭 I/O 端口控制模块,释放相关资源。
- 函数定义:
fsp_err_t R_IOPORT_Close(ioport_ctrl_t *p_ctrl)
- 参数:
p_ctrl
:指向 I/O 控制块的指针,标识要关闭的 I/O 模块。
- 使用说明:在不再需要使用 I/O 端口时调用此函数,以释放系统资源。
6.1.3 R_IOPORT_PinsCfg
- 功能:配置一组引脚的属性,如方向、初始状态等。
- 函数定义:
fsp_err_t R_IOPORT_PinsCfg(ioport_ctrl_t *const p_ctrl, const ioport_cfg_t *p_cfg)
- 参数:
p_ctrl
:指向 I/O 控制块的指针。p_cfg
:指向配置结构体的指针,包含需要配置的引脚组的具体配置。
- 使用说明:在初始化 I/O 后,可使用此函数对多个引脚进行批量配置。
6.1.4 R_IOPORT_PinCfg
- 功能:配置单个引脚的属性。
- 函数定义:
fsp_err_t R_IOPORT_PinCfg(ioport_ctrl_t *const p_ctrl, bsp_io_port_pin_t pin, uint32_t cfg)
- 参数:
p_ctrl
:指向 I/O 控制块的指针。pin
:要配置的引脚编号。cfg
:引脚的配置参数,通常包含方向(输入/输出)、初始状态等信息。
- 使用说明:用于对单个引脚进行单独的配置操作。
6.1.5 R_IOPORT_PinRead
- 功能:读取指定引脚的电平状态。
- 函数定义:
fsp_err_t R_IOPORT_PinRead(ioport_ctrl_t *const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t *p_pin_value)
- 参数:
p_ctrl
:指向 I/O 控制块的指针。pin
:要读取的引脚编号。p_pin_value
:指向存储读取电平状态的变量的指针,读取后此值为高或低电平。
- 使用说明:用于检测引脚的电平状态,如按键输入。
6.1.6 R_IOPORT_PortRead
- 功能:读取整个端口的值。
- 函数定义:
fsp_err_t R_IOPORT_PortRead(ioport_ctrl_t *const p_ctrl, bsp_io_port_t port, ioport_size_t *p_port_value)
- 参数:
p_ctrl
:指向 I/O 控制块的指针。port
:要读取的端口编号。p_port_value
:指向存储读取端口值的变量的指针,读取后包含该端口的所有引脚状态。
- 使用说明:用于同时读取多个引脚的状态。
6.1.7 R_IOPORT_PortWrite
- 功能:设置整个端口的值。
- 函数定义:
fsp_err_t R_IOPORT_PortWrite(ioport_ctrl_t *const p_ctrl, bsp_io_port_t port, ioport_size_t value, ioport_size_t mask)
- 参数:
p_ctrl
:指向 I/O 控制块的指针。port
:要设置的端口编号。value
:要写入的值,表示该端口的每个引脚状态。mask
:掩码,用于指定哪些引脚受影响。
- 使用说明:用于同时设置多个引脚的状态。
6.1.8 R_IOPORT_PinWrite
- 功能:设置单个引脚的电平状态。
- 函数定义:
fsp_err_t R_IOPORT_PinWrite(ioport_ctrl_t *const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t level)
- 参数:
p_ctrl
:指向 I/O 控制块的指针。pin
:要设置的引脚编号。level
:设置的电平值,通常为高电平或低电平。
- 使用说明:用于控制单个引脚的输出,如 LED 点亮或关闭。
6.1.9 R_IOPORT_PortDirectionSet
- 功能:设置端口中多个引脚的方向(输入或输出)。
- 函数定义:
fsp_err_t R_IOPORT_PortDirectionSet(ioport_ctrl_t *const p_ctrl, bsp_io_port_t port, ioport_size_t direction_values, ioport_size_t mask)
- 参数:
p_ctrl
:指向 I/O 控制块的指针。port
:要设置的端口编号。direction_values
:方向设置,值为输入或输出。mask
:掩码,用于指定哪些引脚受影响。
- 使用说明:用于批量设置端口的引脚方向。
6.2 UART 控制函数详细说明
6.2.1 R_SCI_UART_Open
- 功能:初始化 UART 控制模块,配置相关资源以便后续的串行通信操作。
- 函数定义:
fsp_err_t R_SCI_UART_Open(uart_ctrl_t * const p_api_ctrl, uart_cfg_t const *const p_cfg)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针,用于存储 UART 控制模块的状态信息。p_cfg
:指向 UART 配置结构体的指针,包含串行通信的初始化配置,包括波特率、数据位、停止位等。
- 使用说明:在开始 UART 通信之前需要调用该函数进行初始化。
6.2.2 R_SCI_UART_Close
- 功能:关闭 UART 控制模块,释放相关资源。
- 函数定义:
fsp_err_t R_SCI_UART_Close(uart_ctrl_t *const p_api_ctrl)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针,标识要关闭的 UART 模块。
- 使用说明:在不再需要使用 UART 进行通信时调用此函数,以释放系统资源。
6.2.3 R_SCI_UART_Read
- 功能:从 UART 读取指定数量的字节数据。
- 函数定义:
fsp_err_t R_SCI_UART_Read(uart_ctrl_t *const p_api_ctrl, uint8_t *const p_dest, uint32_t const bytes)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针。p_dest
:指向存储接收数据的缓冲区。bytes
:要读取的字节数。
- 使用说明:用于接收 UART 数据,通常在串口通信中用于读取传感器或其他外设的反馈信息。
6.2.4 R_SCI_UART_Write
- 功能:通过 UART 发送指定数量的字节数据。
- 函数定义:
fsp_err_t R_SCI_UART_Write(uart_ctrl_t *const p_api_ctrl, uint8_t *const p_src, uint32_t const bytes)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针。p_src
:指向要发送的数据缓冲区。bytes
:要发送的字节数。
- 使用说明:用于发送 UART 数据,例如调试信息或传感器数据发送至主控。
6.2.5 R_SCI_UART_CallbackSet
- 功能:设置 UART 模块的回调函数,用于处理接收和发送完成等事件。
- 函数定义:
fsp_err_t R_SCI_UART_CallbackSet(uart_ctrl_t *const p_api_ctrl, void(*p_callback)(void), void const *const p_context, uart_callback_args_t *const p_callback_memory)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针。p_callback
:指向回调函数的指针。p_context
:上下文信息,用于回调中传递的用户自定义数据。p_callback_memory
:回调函数使用的内存。
- 使用说明:用于注册回调函数,以处理 UART 传输完成或错误等事件。
6.2.6 R_SCI_UART_BaudSet
- 功能:设置 UART 通信的波特率。
- 函数定义:
fsp_err_t R_SCI_UART_BaudSet(uart_ctrl_t *const p_api_ctrl, void const *const p_baud_setting)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针。p_baud_setting
:指向波特率设置结构体的指针,包含波特率、停止位、数据位等配置信息。
- 使用说明:用于更改 UART 通信的波特率设置。
6.2.7 R_SCI_UART_InfoGet
- 功能:获取 UART 的状态和配置信息。
- 函数定义:
fsp_err_t R_SCI_UART_InfoGet(uart_ctrl_t *const p_api_ctrl, uart_info_t *p_info)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针。p_info
:指向用于存储 UART 状态信息的结构体。
- 使用说明:用于检查 UART 的当前状态,包括传输状态、错误状态等。
6.2.8 R_SCI_UART_Abort
- 功能:中止正在进行的 UART 通信。
- 函数定义:
fsp_err_t R_SCI_UART_Abort(uart_ctrl_t *const p_api_ctrl, uart_dir_t communication_to_abort)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针。communication_to_abort
:指示要中止的通信方向(接收或发送)。
- 使用说明:当需要立即停止 UART 通信时调用,例如在错误发生时中止传输。
6.2.9 R_SCI_UART_ReadStop
- 功能:停止当前的 UART 接收操作。
- 函数定义:
fsp_err_t R_SCI_UART_ReadStop(uart_ctrl_t *const p_api_ctrl, uint32_t *remaining_bytes)
- 参数:
p_api_ctrl
:指向 UART 控制块的指针。remaining_bytes
:指向存储剩余未接收字节数的变量。
- 使用说明:用于在接收操作过程中临时停止接收。
6.2.10 R_SCI_UART_BaudCalculate
- 功能:根据指定的波特率和误差计算 UART 波特率配置。
- 函数定义:
fsp_err_t R_SCI_UART_BaudCalculate(uint32_t baudrate, bool bitrate_modulation, uint32_t baud_rate_error_x_1000, baud_setting_t *const p_baud_setting)
- 参数:
baudrate
:期望的波特率。bitrate_modulation
:启用位速率调制。baud_rate_error_x_1000
:允许的波特率误差,以千分之一为单位。p_baud_setting
:指向波特率配置结构体的指针,用于存储计算结果。
- 使用说明:用于精确设置 UART 波特率以确保通信质量。
6.3 GPT 定时器控制函数详细说明
6.3.1 R_GPT_Open
- 功能:初始化 GPT 模块,配置相关资源以便后续的定时器操作。
- 函数定义:
fsp_err_t R_GPT_Open(timer_ctrl_t *p_ctrl, timer_cfg_t const *p_cfg)
- 参数:
p_ctrl
:指向 GPT 控制块的指针,用于存储 GPT 模块的状态信息。p_cfg
:指向 GPT 配置结构体的指针,包含定时器的初始化设置,包括计数模式、周期等。
- 使用说明:在使用 GPT 计时或 PWM 生成之前需要调用此函数进行初始化。
6.3.2 R_GPT_Start
- 功能:启动 GPT 计时器。
- 函数定义:
fsp_err_t R_GPT_Start(timer_ctrl_t *const p_ctrl)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。
- 使用说明:在完成 GPT 初始化后调用此函数开始计时或 PWM 输出。
6.3.3 R_GPT_Stop
- 功能:停止 GPT 计时器。
- 函数定义:
fsp_err_t R_GPT_Stop(timer_ctrl_t *const p_ctrl)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。
- 使用说明:用于临时停止计时器操作,例如在需要暂停时调用。
6.3.4 R_GPT_Reset
- 功能:将 GPT 计时器计数器重置为零。
- 函数定义:
fsp_err_t R_GPT_Reset(timer_ctrl_t *const p_ctrl)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。
- 使用说明:在重新开始计时或清除计时器状态时调用。
6.3.5 R_GPT_PeriodSet
- 功能:设置 GPT 计时器的周期。
- 函数定义:
fsp_err_t R_GPT_PeriodSet(timer_ctrl_t *const p_ctrl, uint32_t const period_counts)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。period_counts
:计时器周期的计数值。
- 使用说明:用于设置 PWM 输出的周期或定时器的计时周期。
6.3.6 R_GPT_DutyCycleSet
- 功能:设置 GPT 定时器的 PWM 占空比。
- 函数定义:
fsp_err_t R_GPT_DutyCycleSet(timer_ctrl_t *const p_ctrl, uint32_t const duty_cycle_counts, uint32_t const pin)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。duty_cycle_counts
:PWM 占空比的计数值。pin
:输出 PWM 信号的引脚编号。
- 使用说明:用于控制 PWM 输出信号的占空比,例如用于控制舵机的位置。
6.3.7 R_GPT_CompareMatchSet
- 功能:设置 GPT 的比较匹配值。
- 函数定义:
fsp_err_t R_GPT_CompareMatchSet(timer_ctrl_t *const p_ctrl, uint32_t const compare_match_value, timer_compare_match_t const match_channel)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。compare_match_value
:比较匹配的计数值。match_channel
:指定比较匹配的通道。
- 使用说明:用于设置定时器的比较匹配功能,用于检测特定时间的到达。
6.3.8 R_GPT_InfoGet
- 功能:获取 GPT 的当前状态和配置信息。
- 函数定义:
fsp_err_t R_GPT_InfoGet(timer_ctrl_t *const p_ctrl, timer_info_t *const p_info)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。p_info
:指向用于存储 GPT 状态信息的结构体。
- 使用说明:用于获取当前定时器的状态,包括计数值、周期等信息。
6.3.9 R_GPT_StatusGet
- 功能:获取 GPT 的当前计数状态。
- 函数定义:
fsp_err_t R_GPT_StatusGet(timer_ctrl_t *const p_ctrl, timer_status_t *const p_status)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。p_status
:指向存储 GPT 状态信息的结构体,包含计数状态。
- 使用说明:用于检查计数器的当前状态,如是否正在运行。
6.3.10 R_GPT_OutputEnable
- 功能:启用 GPT 的 PWM 输出功能。
- 函数定义:
fsp_err_t R_GPT_OutputEnable(timer_ctrl_t *const p_ctrl, gpt_io_pin_t pin)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。pin
:指定输出 PWM 信号的引脚。
- 使用说明:在启用 PWM 输出之前调用此函数。
6.3.11 R_GPT_OutputDisable
- 功能:禁用 GPT 的 PWM 输出功能。
- 函数定义:
fsp_err_t R_GPT_OutputDisable(timer_ctrl_t *const p_ctrl, gpt_io_pin_t pin)
- 参数:
p_ctrl
:指向 GPT 控制块的指针。pin
:指定禁用 PWM 信号的引脚。
- 使用说明:当不再需要 PWM 输出时调用此函数。
6.3.12 R_GPT_CallbackSet
- 功能:设置 GPT 的回调函数,用于处理中断事件。
- 函数定义:
fsp_err_t R_GPT_CallbackSet(timer_ctrl_t *const p_api_ctrl, void (*p_callback)(void), void const *const p_context, timer_callback_args_t *const p_callback_memory)
- 参数:
p_api_ctrl
:指向 GPT 控制块的指针。p_callback
:指向回调函数的指针。p_context
:上下文信息,用于回调中传递的用户自定义数据。p_callback_memory
:回调函数使用的内存。
- 使用说明:用于注册回调函数,以处理定时器事件或中断### 6.4 AGT 定时器控制函数详细说明
6.4.1 R_AGT_Open
- 功能:初始化 AGT 模块,配置相关资源以便后续的低功耗定时器操作。
- 函数定义:
fsp_err_t R_AGT_Open(timer_ctrl_t *p_ctrl, timer_cfg_t const *p_cfg)
- 参数:
p_ctrl
:指向 AGT 控制块的指针,用于存储 AGT 模块的状态信息。p_cfg
:指向 AGT 配置结构体的指针,包含定时器的初始化设置,包括计数模式、周期等。
- 使用说明:在使用 AGT 计时或低功耗模式计数之前需要调用此函数进行初始化。
6.4.2 R_AGT_Start
- 功能:启动 AGT 计时器。
- 函数定义:
fsp_err_t R_AGT_Start(timer_ctrl_t *const p_ctrl)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。
- 使用说明:在完成 AGT 初始化后调用此函数开始计时。
6.4.3 R_AGT_Stop
- 功能:停止 AGT 计时器。
- 函数定义:
fsp_err_t R_AGT_Stop(timer_ctrl_t *const p_ctrl)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。
- 使用说明:用于临时停止计时器操作,例如在需要暂停时调用。
6.4.4 R_AGT_Reset
- 功能:将 AGT 计时器计数器重置为零。
- 函数定义:
fsp_err_t R_AGT_Reset(timer_ctrl_t *const p_ctrl)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。
- 使用说明:在重新开始计时或清除计时器状态时调用。
6.4.5 R_AGT_PeriodSet
- 功能:设置 AGT 计时器的周期。
- 函数定义:
fsp_err_t R_AGT_PeriodSet(timer_ctrl_t *const p_ctrl, uint32_t const period_counts)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。period_counts
:计时器周期的计数值。
- 使用说明:用于设置计时器的计时周期,以便在设定的时间间隔触发事件。
6.4.6 R_AGT_DutyCycleSet
- 功能:设置 AGT 定时器的 PWM 占空比。
- 函数定义:
fsp_err_t R_AGT_DutyCycleSet(timer_ctrl_t *const p_ctrl, uint32_t const duty_cycle_counts, uint32_t const pin)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。duty_cycle_counts
:PWM 占空比的计数值。pin
:输出 PWM 信号的引脚编号。
- 使用说明:用于低功耗情况下的 PWM 信号输出控制,占空比决定了信号的高低电平比例。
6.4.7 R_AGT_CompareMatchSet
- 功能:设置 AGT 的比较匹配值。
- 函数定义:
fsp_err_t R_AGT_CompareMatchSet(timer_ctrl_t *const p_ctrl, uint32_t const compare_match_value, timer_compare_match_t const match_channel)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。compare_match_value
:比较匹配的计数值。match_channel
:指定比较匹配的通道。
- 使用说明:用于设置定时器的比较匹配功能,用于检测特定时间的到达。
6.4.8 R_AGT_InfoGet
- 功能:获取 AGT 的当前状态和配置信息。
- 函数定义:
fsp_err_t R_AGT_InfoGet(timer_ctrl_t *const p_ctrl, timer_info_t *const p_info)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。p_info
:指向用于存储 AGT 状态信息的结构体。
- 使用说明:用于获取当前定时器的状态,包括计数值、周期等信息。
6.4.9 R_AGT_StatusGet
- 功能:获取 AGT 的当前计数状态。
- 函数定义:
fsp_err_t R_AGT_StatusGet(timer_ctrl_t *const p_ctrl, timer_status_t *const p_status)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。p_status
:指向存储 AGT 状态信息的结构体,包含计数状态。
- 使用说明:用于检查计数器的当前状态,如是否正在运行。
6.4.10 R_AGT_CallbackSet
- 功能:设置 AGT 的回调函数,用于处理中断事件。
- 函数定义:
fsp_err_t R_AGT_CallbackSet(timer_ctrl_t *const p_api_ctrl, void(*p_callback)(void), void const *const p_context, timer_callback_args_t *const p_callback_memory)
- 参数:
p_api_ctrl
:指向 AGT 控制块的指针。p_callback
:指向回调函数的指针。p_context
:上下文信息,用于回调中传递的用户自定义数据。p_callback_memory
:回调函数使用的内存。
- 使用说明:用于注册回调函数,以处理定时器事件或中断。
6.4.11 R_AGT_Close
- 功能:关闭 AGT 定时器模块,释放相关资源。
- 函数定义:
fsp_err_t R_AGT_Close(timer_ctrl_t *const p_ctrl)
- 参数:
p_ctrl
:指向 AGT 控制块的指针。
- 使用说明:在不再需要 AGT 定时器时调用此函数以释放资源。
7. 软件框架
7.1 项目目录结构介绍
在 e2studio
的项目目录中,各个文件夹和文件的功能如下:
- (顶层文件夹):这是项目的根目录,项目名称为
led
。所有项目相关的文件和文件夹都在此目录下。 - 二进制:该文件夹包含项目生成的二进制文件。在此图中,可以看到一个
led.elf
文件,这是编译后生成的可执行文件,适用于 ARM 架构的芯片(此处为arm/le
表示的架构)。 - Includes:
Includes
文件夹包含项目中引用的头文件(.h
文件)路径。这里列出了项目所有的头文件目录,便于代码中查找和引用外部定义的符号。 - ra:该文件夹存放了瑞萨 RA 系列微控制器的核心代码和库,通常由
e2studio
自动生成。包含以下子文件夹:- arm:与 ARM 架构相关的文件,包括 CMSIS(Cortex Microcontroller Software Interface Standard)库,这些文件为开发 RA 系列微控制器提供了底层支持。
- board:包含与开发板硬件相关的配置和初始化文件,根据具体硬件平台调整各个外设的设置。
- fsp:Flexible Software Package(FSP)的文件,FSP 是瑞萨的硬件抽象层和驱动库,提供对芯片功能的接口。
- ra_gen:这是
e2studio
自动生成的代码文件夹,通常包含在图形化配置工具中设置的外设初始化代码。例如,GPIO、UART、I2C 等配置生成的代码会放在此目录下,每次配置更改后都会自动更新。 - src:该文件夹是用户项目的主要代码目录,开发者可以在这里编写项目的核心应用代码和逻辑。
- Debug:
Debug
文件夹用于存放调试过程中生成的文件,包括调试信息和符号表等。调试时使用的临时文件也会存放在这里。 - build:
build
文件夹存放项目编译过程中生成的中间文件,比如对象文件(.o
文件)和依赖文件等。它是临时生成的,可以在不影响项目的情况下删除。 - ra_cfg:这个文件夹包含 FSP 配置文件。RA 系列微控制器的外设和资源配置会生成相关的
.xml
或.txt
文件,项目运行时会参考这些配置。 - script:
script
文件夹通常包含与构建过程相关的脚本文件,比如链接脚本和配置脚本。它可以自定义编译和链接步骤。 - configuration.xml:项目配置文件,记录了项目的基本配置选项,包括编译和构建的设置等。
- JLinkLog.log:这是调试工具 JLink 生成的日志文件,记录调试过程中的输出信息和日志。JLink 是一种常用的调试工具,用于 ARM 微控制器调试。
- led Debug_Flat.jlink:JLink 的配置文件,用于控制调试会话的一些选项,比如连接方式和调试级别等。
- led Debug_Flat.launch:
launch
配置文件,用于启动调试会话。它指定调试时使用的设备和调试工具的配置。 - ra_cfg.txt:这是 RA 微控制器的配置文件,记录了一些关于 FSP 的配置细节,可以帮助开发环境识别和设置项目相关的芯片和配置。
- Developer Assistance:这是
e2studio
提供的开发者辅助工具,包含一些开发过程中的帮助文档和快捷方式,便于开发者快速查找所需资源或配置。
7.2 e2 studio 透视图介绍
在瑞萨的 e2 studio 开发环境中,配置透视图为开发者提供了多个功能模块的便捷配置选项。各个标签页的作用如下:
- Summary:该标签页提供了项目的总体概览,列出项目的主要配置内容和当前状态。开发者可以在这里快速查看项目的基本信息。
- BSP (Board Support Package):BSP 标签用于配置与开发板硬件相关的设置,包括初始化代码和硬件资源。BSP 包含的内容通常涉及开发板的引脚定义、外设配置以及系统初始化过程。
- Clocks:Clocks 标签允许用户配置系统时钟和外设时钟。开发者可以在此选择不同的时钟源并调整频率,以确保芯片的不同模块在合适的时钟频率下运行。
- Pins:Pins 标签用于设置 RA6E2 微控制器的引脚分配。
以在此指定每个引脚的功能和模式(如 GPIO、ADC 输入、PWM 输出等),便于硬件与软件之间的协调。 - Interrupts:在 Interrupts 标签中,可以设置中断的优先级和触发源。开发者可以配置不同的中断服务程序以应对系统中可能发生的各种事件,从而实现系统的实时响应。
- Event Links:Event Links 标签用于设置事件链(Event Link),即不同外设之间的事件触发机制。通过配置事件链,开发者可以在某个外设触发事件时通知其他外设,以实现模块之间的高效协作。
- Stacks:Stacks 标签用于配置软件栈,例如 USB、文件系统和网络协议栈等。开发者可以在此添加、删除或配置所需的栈,从而扩展 RA6E2 微控制器的功能。
- Components:Components 标签列出项目所用的组件。开发者可以在这里管理组件的添加、删除和配置,便于项目的模块化开发和扩展。