e2studio开发RA2E1.7--定时器GPT输出PWM
- 概述
- 视频教学
- 样品申请
- 硬件准备
- 参考程序
- 源码下载
- 选择计时器
- 新建工程
- 工程模板
- 保存工程路径
- 芯片配置
- 工程模板选择
- 时钟设置
- GPIO口配置
- GPT定时器
- GPT定时器属性配置
- 初始化GPT
- [启动GPT PWM模块](#启动GPT PWM模块)
- 演示
概述
GPT(通用 PWM 计时器)模块是一个高精度定时器,用于计数事件、测量外部输入信号、生成周期性中断,或输出周期性信号/PWM 信号到 GTIOC 引脚。它广泛应用于定时控制、信号测量、PWM 生成等应用,尤其适用于电机控制、LED 调光、PWM 伺服驱动和 ADC 触发等场景。
最近在瑞萨RA的课程,需要样片的可以加qun申请:925643491。
![](https://i-blog.csdnimg.cn/direct/38ed9e3dd9d942a5b170dcc0261c6d8f.png)
视频教学
https://www.bilibili.com/video/BV1rAP2ewEFG/
e2studio开发RA2E1(7)----定时器GPT输出PWM
样品申请
https://www.wjx.top/vm/rCrkUrz.aspx
硬件准备
首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为R7FA2E1A72DFL#AA0
![](https://i-blog.csdnimg.cn/direct/f9b0bb144d9e451680441ffc1e0fc86a.png)
参考程序
https://github.com/CoreMaker-lab/RA2E1
https://gitee.com/CoreMaker/RA2E1
源码下载
选择计时器
RA MCU 有两个定时器外设:通用 PWM 定时器 (GPT) 和异步通用定时器 (AGT)。
![](https://i-blog.csdnimg.cn/direct/05df2ab80e214a37b86ac8bbbfea7464.png)
新建工程
![](https://i-blog.csdnimg.cn/direct/9be1308b573d418595e2138c6620587d.png)
工程模板
![](https://i-blog.csdnimg.cn/direct/69d9489518d04f59a1eeeea9a665d76a.png)
保存工程路径
![](https://i-blog.csdnimg.cn/direct/710752f02fd94d5b92587d553f8696a9.png)
芯片配置
本文中使用R7FA2E1A72DFL#AA0来进行演示。
![](https://i-blog.csdnimg.cn/direct/68af5347c2774689a29bcb65b4bbf1e7.png)
工程模板选择
![](https://i-blog.csdnimg.cn/direct/565a600a2c0742178f13f02c9c569618.png)
时钟设置
开发板上的外部高速晶振为12M.
![](https://i-blog.csdnimg.cn/direct/9564c50dcf464e5e8e0eb23dd3cca5e6.png)
需要修改XTAL为12M。
![](https://i-blog.csdnimg.cn/direct/e21bdfabe40e40899a323958eb990f47.png)
GPIO口配置
这里配置P100和P101为PWM口。
![](https://i-blog.csdnimg.cn/direct/54936f42227e4d88a91f071627bdd8d0.png)
查看可视化界面可以得知,对应的是GPT8。
![](https://i-blog.csdnimg.cn/direct/7b8fd73cbb8f4ccaa41e1728f60e0228.png)
GPT定时器
操作 "New Stack > Timers >Timer, General PWM (r_gpt)" 在项目中添加GPT定时器的多通道操作功能,特别是用于生成PWM信号或单次脉冲信号。
![](https://i-blog.csdnimg.cn/direct/a69472b351b1438c9ddc4418ecdad6f1.png)
GPT定时器属性配置
● Pin Output Support:设为 Enabled,允许 PWM 信号输出到外部引脚。
● Name:设置为 g_timer8,这是模块的唯一标识符,用于代码中引用此定时器实例。
● Channel:设定为 8,表示该定时器使用通道 8 进行计数和控制。
● Mode:设为 Periodic,表示该定时器工作在周期模式,将在设定周期内重复运行。
● Period:周期值设置为 1,即每个完整计数周期的时间间隔。
● Period Unit:单位选择为 Kilohertz(千赫兹),表示输出信号的频率为 1 kHz。
● Duty Cycle Percent:设置为 50%,表示 PWM 输出信号的高电平时间占周期的 50%。
● GTIOCA Output Enabled:设置为 True,启用 GTIOCA(P101)引脚的输出功能。
● GTIOCA Stop Level:设为 Pin Level Low,表示定时器停止时 GTIOCA 输出低电平。
● GTIOCB Output Enabled:设置为 True,启用 GTIOCB(P100)引脚的输出功能。
● GTIOCB Stop Level:设为 Pin Level Low,表示定时器停止时 GTIOCB 输出低电平。
GTIOCA & GTIOCB 输出: 同时启用了 GTIOCA(P101)和 GTIOCB(P100) 两个引脚进行 PWM 输出。
![](https://i-blog.csdnimg.cn/direct/6ae397be79df4af7a13b00b91d7f8cb1.png)
初始化GPT
R_GPT_Open() 函数用于初始化通用PWM定时器(GPT)模块,并应用相应的配置。它的主要作用是启动定时器,使其按照设定的模式工作,例如周期模式(Periodic Mode)或PWM模式(Pulse Width Modulation Mode)。
![](https://i-blog.csdnimg.cn/direct/cd5072e59d96480ab02a2b98f3874e08.png)
c
fsp_err_t err = FSP_SUCCESS;
/* Initializes the module. */
err = R_GPT_Open(&g_timer8_ctrl, &g_timer8_cfg);
/* Handle any errors. This function should be defined by the user. */
assert(FSP_SUCCESS == err);
启动GPT PWM模块
R_GPT_Start() 用于启动GPT(General PWM Timer)定时器,使其开始按照之前的配置运行。
必须先调用 R_GPT_Open(),否则 R_GPT_Start() 会返回 FSP_ERR_NOT_OPEN 错误。
在PWM模式下,启动定时器后会按照设定的周期和占空比输出PWM波形。
![](https://i-blog.csdnimg.cn/direct/a6fa2147e33a4ce1a0cd079fb082b7b4.png)
c
/* Start the timer. */
(void) R_GPT_Start(&g_timer8_ctrl);
演示
输出1k占空比50%的PWM。
![](https://i-blog.csdnimg.cn/direct/b687a7d8878746329f0dc6eee8f8c512.png)