再问如何以DMA方式产生互补的两路PWM信号

所属分类:ST其他产品 浏览数:505 提问者:calljiqing 提问时间:2017-10-12
标签:STM32PWMDMA

问:

前几天经高手指点,学会了借助TIM_CCxChannelCmd以及HAL_TIM_PWM_Start_DMA和HAL_TIMEx_PWMN_Start_DMA实现了同一DMA通道的两路互补PWM。但是如果想实现第二个和第三个DMA通道的两路互补PWM(一共6路PWM)却遇到新问题: 我做了一下测试,第一个DMA通道的两路互补PWM总是屏蔽后面通道的所有PWM,如果删掉第一个通道,第二个通道的两路互补PWM就会正常显现,以此类推。难道还需要做其它什么设置吗? 有点急,请再赐教,见谅。


答:hi,不知你是否就是想利用DMA同时传输下CCR1/2/3寄存器的值。若是, 感觉你搞复杂了。你看下手册关于定时器DMA传输的部分。不看手册是要不得地。 Example of how to use the DMA burst feature In this example the timer DMA burst feature is used to update the contents of the CCRx registers (x = 2, 3, 4) with the DMA transferring half words into the CCRx registers. This is done in the following steps: 1. Configure the corresponding DMA channel as follows: – DMA channel peripheral address is the DMAR register address – DMA channel memory address is the address of the buffer in the RAM containing the data to be transferred by DMA into CCRx registers. – Number of data to transfer = 3 (See note below). – Circular mode disabled. 2. Configure the DCR register by configuring the DBA and DBL bit fields as follows: DBL = 3 transfers, DBA = 0xE. 3. Enable the TIMx update DMA request (set the UDE bit in the DIER register). 4. Enable TIMx 5. Enable the DMA channel
回答者:xmshao 回答时间:2017-10-12

登录后回答。
图书推荐
漫画半导体(高清版)

漫画半导体(高清版)

这是一本实用性很强的图书,,以漫画的形式更易于让人接受,边读故事边学知识,轻松且易于记忆。
算法心得:高效算法的奥秘

算法心得:高效算法的奥秘

本书给我们带来了一大批极为诱人的知识,其中包括各种节省程序运行时间的技巧、算法与窍门...
基于STM8S-无刷直流电机控制应用

基于STM8S-无刷直流电机控制应用

无刷直流电机是21世纪最有发展前景的新型电机之一。本书以STM8S单片机为控制核心...
广告