看了tmr的例程,有个dma pwm例子,会发送数组,循环发送,这个数组对于pwm代表什么?占空比?还是什么?比如例子中周期为TMR2_PWMCycleCfg(120000); // 周期 2000us,数组如图,比如我想发送占空比25%和45%的发送什么数据?。第二例子中有个计满1000周期进入中断?这个有点不明白?多写了0?还是?第三我设置单次模式如何再次开启dma pwm传输?
查看: 304
回复: 5
tmr dma
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
DMA数组中的数值用来表示低/高电平的周期数,高/低电平根据TMR2_PWMInit接口的第一个参数来判断。
25%的高电平占比,可以配置(25% * TMR2_PWMCycleCfg接口周期总数)个周期,放在PwmBuf数组中,TMR2_PWMInit配置第一个参数为High_Level。
图中“计满1000周期进入中断”注释可以删去,该注释不适用图中的代码块。
再次开启TMR PWM输出一组周期,再调用一次TMR2_DMACfg即可。
还有一个问题,我尝试输出脉冲,但发现第一个脉冲被输出了两次,什么原因?如图第一个0.2ms被输出了2次然后第三个脉冲是20us
经过测试例程也会出现,由于例子中数组第一位为0,所以直接观察不到,但如果 PwmBuf[i]=2400*i+2400;将数组第一个变为非零,就会观察到第一个脉冲出现了重复,
如下图
您好,可以先配置init再配置dmacfg,这样试试看。
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录