OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6261|回复: 0

AT32F4xx_使用DMA动态更新PWM占空比

[复制链接]

44

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
175
金钱
175
注册时间
2017-5-6
在线时间
10 小时
发表于 2023-1-9 20:15:11 | 显示全部楼层 |阅读模式
AT32F4xx_使用DMA动态更新PWM占空比
示例目的
本示例代码基于AT32F403A,展示了如何使用AT32 的TMR 和DMA 动态更新PWM 占空比。
该示例使用TMR4 的更新事件触发DMA1 搬运数据至TMR4 的通道2 数据寄存器(TMRx_C2DT),达到在TMR4 的通道2(PB7)动态输出占空比不同的PWM 波的效果。

支持型号列表:
AT32F403xx
AT32F403Axx
AT32F407xx
AT32F413xx
AT32F415xx
AT32F421xx

主要使用外设列表:
TMR4
DMA

1. 硬件资源
1) AT-START-F403A V1.0开发板
2. 软件资源
1) 该Demo 以AT32F403A 为例,BSP 版本AT32F403A_407_Firmware_Library_V2.0.6。
2) TMR 配置:
  • 配置TMR4 的通道2(PB7)产生PWM 波。
  • 配置DMA1 并将其请求映射选择为通道7(TMR4 的更新事件),搬运内存中的不同占空比数据至TMR4 的通道2 数据寄存器(TMRx_C2DT),动态更新占空比。
3) 对main.c 的“src_buffer[]”数组直接做相应修改可配置想要的占空比,数组长度软件会自动计算。
注: 所有project 都是基于keil 5 而建立, 若用户需要在其他编译环境上使用, 请参考
AT32xxx_Firmware_Library_V2.x.x\project\at_start_xxx\templates中各种编译环境(例如IAR6/7,keil 4/5)进行简单修
改即可。

3. 示例使用
1) 硬件连接:将PB7(TMR4_CH2)接入逻辑分析仪或示波器。
2) 打开\SourceCode\SC0069_SourceCode_V2.0.0\utilities\SC0069_Demo\mdk_v5\Duty.uvprojx 源程序,编译后下载到实验板。
3) 抓取PB7 波形,验证程序效果。当正常运行时,TMR4_CH2(PB7)将按照uint16_t src_buffer[]= {10,20,30,40,50,60,70,80,90,10,20,30,40,50,60,70,80,90};中的变量输出对应占空比的PWM波形,Demo 中的PWM 波形如下图
[size=0.83em]
185921f82nwf5u2kw25nk5.png.thumb.jpg (10.61 KB )
[color=rgb(153, 153, 153) !important]2023-1-9 20:11 上传



进版到V2.0.1


SC0069_AT32_TMR_DMA_Update_PWM_Duty_Cycle_Dynamically_V2.0.1.zip

778.28 KB, 下载次数: 7

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 19:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表