28.5
实验2:比较匹配功能——PWM输出
28.5.1
硬件设计
野火启明6M5开发板例程使用的PWM输出引脚为额外引出的IO引脚:P500,如下图所示。

点击可查看大图
注
野火启明6M5开发板例程使用的PWM输出引脚为额外引出的IO引脚:P500(AGTOA0)。
野火启明4M2开发板例程使用的PWM输出引脚为额外引出的IO引脚:P211(AGTOA5)。
野火启明2L1开发板例程使用的PWM输出引脚为额外引出的IO引脚:P208(AGTOB0)。
28.5.2
软件设计
28.5.2.1
新建工程
由于本实验需要用到LED,也会用到串口打印提示信息,因此我们在前面串口通信章节的“实验1:UART收发回显"例程的基础上修改程序。
对于e2studio开发环境:拷贝一份我们之前的e2s工程“19_UART_Receive_Send”,然后将工程文件夹重命名为“28_AGT_PWM_Output”,最后再将它导入到我们的e2studio工作空间中。
对于Keil开发环境:拷贝一份我们之前的Keil工程“19_UART_Receive_Send”,然后将工程文件夹重命名为“28_AGT_PWM_Output”,并进入该文件夹里面双击Keil工程文件,打开该工程。
工程新建好之后,在工程根目录的“src”文件夹下面新建“agt”文件夹,再进入“agt”文件夹里面新建源文件和头文件:“bsp_agt_pwm_output.c”和“bsp_agt_pwm_output.h”。工程文件结构如下。
列表5:文件结构
左右滑动查看完整内容
28_AGT_PWM_Output ├─ ...... └─src ├─ led │ ├─ bsp_led.c │ └─ bsp_led.h ├─ debug_uart │ ├─ bsp_debug_uart.c │ └─ bsp_debug_uart.h ├─ agt │ ├─ bsp_agt_pwm_output.c │ └─ bsp_agt_pwm_output.h └─ hal_entry.c
28.5.2.2
FSP配置
接下来我们要以启明6M5开发板为例来说明进行FSP配置的方法,另外两块板子的配置步骤是一样的,读者可根据实际使用的引脚参照下面的步骤来进行配置。
因为PWM输出需要使用IO口进行输出,因此需要先在“Pins”配置页中为AGT配置引脚,我们将AGT的AGTOA0信号输出连接到P500引脚,如下图所示。
点击可查看大图
随后在“Stacks”配置页中加入AGT模块,并对其作如下图所示的配置。

点击可查看大图
AGT的“Output”部分属性描述如下表所示。
表6:AGT属性描述:“Output”部分。
点击可查看大图
28.5.2.3
AGT初始化函数
列表6:AGT初始化函数
左右滑动查看完整内容
/* AGT 初始化函数*/
voidAGT_PWM_Init(void)
{
/* 初始化AGT 模块*/
R_AGT_Open(&g_timer_agt0_ctrl, &g_timer_agt0_cfg);
/* 启动AGT 定时器*/
R_AGT_Start(&g_timer_agt0_ctrl);
/* 重新设置占空比为80% */
AGT_PWM_SetDuty(80);
}
需要注意的是,在AGT初始化函数里面,我们重新设置了占空比:50%→80%。设置PWM占空比使用了我们自己写的AGT_PWM_Set Duty函数。
28.5.2.4
设置PWM占空比函数
列表7:设置PWM占空比函数
左右滑动查看完整内容
/** 自定义函数:设置PWM 占空比
@param duty 占空比范围:0~100 %
*/
voidAGT_PWM_SetDuty(uint8_tduty)
{
timer_info_tinfo;
uint32_tcurrent_period_counts;
uint32_tduty_cycle_counts;
if(duty >100)
duty =100;//限制占空比范围:0~100
/* 获得AGT 的信息*/
R_AGT_InfoGet(&g_timer_agt0_ctrl, &info);
/* 获得计时器一个周期需要的计数次数*/
current_period_counts = info.period_counts;
/* 根据占空比和一个周期的计数次数计算比较匹配寄存器的值*/
duty_cycle_counts = (uint32_t)(((uint64_t) current_period_counts *␣
,→duty) /100);
/* 最后调用FSP 库函数设置占空比*/
R_AGT_DutyCycleSet(&g_timer_agt0_ctrl, duty_cycle_counts, AGT_OUTPUT_
,→PIN_AGTOA);
}
该函数的主要思路是需要先知道计数器的计数周期(即当前输出的PWM信号的一个周期需要计数的值current_period_counts),然后计算与要设定的占空比(duty)对应的计数值(duty_cycle_counts),最后调用FSP库函数R_AGT_Duty Cycle Set写入该占空比对应的计数值。
调用R_AGT_Duty Cycle Set函数时需要注意传入的第三个参数是AGT_OUTPUT_PIN_AGTOA,因为我们使用的PWM输出引脚P500连接到的是AGT0的AGTOA信号。如果换用别的引脚,需要注意检查这个参数是否需要修改。
28.5.2.5
hal_entry入口函数
列表8:hal_entry入口函数
左右滑动查看完整内容
/* 用户头文件包含*/
#include"led/bsp_led.h"
#include"debug_uart/bsp_debug_uart.h"
#include"gpt/bsp_gpt_pwm_output.h"
voidhal_entry(void)
{
/*TODO:add your own code here */
LED_Init();// LED 初始化
Debug_UART4_Init();// SCI4 UART 调试串口初始化
AGT_PWM_Init();// AGT 初始化
printf("这是一个AGT 的PWM 输出功能实验
");
printf("使用示波器测量P500 输出的PWM 波形
");
// LED1 闪烁指示程序正在运行...
while(1)
{
LED1_ON;
R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS);
LED1_OFF;
R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS);
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
28.5.3
下载验证
以野火启明6M5开发板为例,编译并下载程序后,复位开发板使程序重新运行,然后使用示波器测量P500引脚输出的PWM波形。实现现象如下。
图中PWM波形的频率为20KHz,占空比为80%:

- 随机文章
- 热门文章
- 热评文章
- 一季度中小企业发展指数再次回升 经济回暖势头不断增强
- 金价“疯”涨之谜 金价走势与实际利率“背离”
- 机构:台积电2nm量产将延迟至2026年底
- 微软CEO的精明策略:打赢AI战不能全靠OpenAI
- 共享基经丨读懂主题ETF(二十四):黄金、黄金股都在涨,以黄金、稀有金属为主题的ETF,还有机会吗?
- 韩国就岸田文雄向靖国神社献祭品深表失望和遗憾
- 黄金交易提醒:中东紧张局势助力金价周线五连阳,七成分析师看涨后市
- 公募定价新逻辑隐现!"出海"成关键要素,更有基金"超限"重仓
- 日银周五料维持利率不变,可能在夏季或秋季加息
- 涉嫌试图推翻2020年美总统竞选结果 多人受重罪指控
- 白条猪肉:需求相对弱势,4月东北猪肉行情缓跌为主
- 微软全球资深副总裁张祺:AI大航海时代,人人都将拥有自己的Copilot
- 最高检:已将129件涉奥林匹克标志和英烈姓名的商标宣告无效
- 1“赛事+”提升城市“流量” 陕西商洛拓经济发展新“赛道”
- 2“五一”临近 持基过节的投资者要注意这几点
- 3华发股份:成功入选“人民优选”品牌 五一黄金周热销30亿
- 4钟鼓楼老街区的古都新事
- 5到2027年产业规模达到2000亿元 浙江发布历史经典产业高质量发展计划
- 6非常危险!女子摔成粉碎性骨折!又是因为洞洞鞋,夏天多人中招……
- 7金税四期试点上线,财税体制改革拉开帷幕!或有资金借道信创ETF基金(562030)逢跌进场布局
- 8初步数据:我国一季度经常账户顺差392亿美元
- 9IDC:24Q1全球PC出货量恢复增长 达到疫情前水平
- 10“发现山西之美”TDC旅游发现者大会举办:共话文旅新生态 邀客体验新玩法
- 11国门“夫妻档” 国庆共坚守
- 12北交所一周审核动态:2家企业更新进展 胜业电气二轮问询回复中称家电头部客户对价格敏感度较低
- 13(中国新貌)“国宝”大熊猫:栖居更美境 云游更广天
- 1大裁员下,特斯拉两名顶级高管离职
- 2奇瑞将与欧洲高端品牌签署技术平台授权协议
- 32024中国长三角青年企业家交流大会在杭州举办
- 4雷克萨斯GX中东版 全部在售 2023款 2022款 2020款 2019款 2018款成都远卓名车雷克萨斯GX中东版团购钜惠20万 欢迎上门试驾
- 5零跑C16将搭载中创新航磷酸铁锂电池
- 6Q1净利微增7%,宁德时代股东总数较2023年年末减少10728户
- 7哪吒,需要背水一战
- 8“新”中有“机”!创新服务承接新流量 撬动消费升级
- 9非创始版SU7何时交付 小米:工厂生产爬坡 全力提高产能
- 10央媒评卧铺挂帘:谁买的票谁做主
- 11江西南昌首部“多规合一”国土空间总体规划获批
- 12方程豹旗舰硬派越野!豹8正式亮相:仰望U8“青春版”登场
- 13583家族/造型霸气 方程豹豹8量产版发布

![[诉讼]*ST瑞茂(600180):瑞茂通关于公司及子公司新增诉讼及进展情况](https://www.aooyin.com/zb_users/theme/ydblack/include/random/1.jpg)

