50031185 发表于 2020-2-18 19:13:17

STM32 定时器 的高级用法

CUbeMX HAL中库


高级定时器部分有2个函数,清楚不太这两个函数的区别   
第一个的英文HAL_TIM_DMABurst_WriteStart()
第二个是HAL_TIM_OC_Start_DMA()
这两个用起来有什么区别




描述如下
/ **
* @brief配置DMA突发以将数据从内存传输到TIM外围设备
* @param htim TIM句柄
* @param BurstBaseAddress TIM DMA从其开始写入数据的基地址
*该参数可以是以下值之一:
* @arg TIM_DMABASE_CR1
* @arg TIM_DMABASE_CR2
* @arg TIM_DMABASE_SMCR
* @arg TIM_DMABASE_DIER
* @arg TIM_DMABASE_SR
* @arg TIM_DMABASE_EGR
* @arg TIM_DMABASE_CCMR1
* @arg TIM_DMABASE_CCMR2
* @arg TIM_DMABASE_CCER
* @arg TIM_DMABASE_CNT
* @arg TIM_DMABASE_PSC
* @arg TIM_DMABASE_ARR
* @arg TIM_DMABASE_RCR
* @arg TIM_DMABASE_CCR1
* @arg TIM_DMABASE_CCR2
* @arg TIM_DMABASE_CCR3
* @arg TIM_DMABASE_CCR4
* @arg TIM_DMABASE_BDTR
* @ param BurstRequestSrc TIM DMA请求源
*此参数可以是以下值之一:
* @arg TIM_DMA_UPDATE:TIM更新中断源
* @arg TIM_DMA_CC1:TIM捕获比较1 DMA源
* @arg TIM_DMA_CC2:TIM捕获比较2 DMA源
* @arg TIM_DMA_CC3:TIM捕获比较3 DMA源
* @arg TIM_DMA_CC4:TIM捕获比较4 DMA源
* @arg TIM_DMA_COM:TIM换向DMA源
* @arg TIM_DMA_TRIGGER:TIM触发DMA源
* @param BurstBuffer缓冲区地址。
* @param BurstLength DMA突发长度。此参数可以是
TIM_DMABURSTLENGTH_1TRANSFER和TIM_DMABURSTLENGTH_18TRANSFERS之间的一个值*。
* @note仅当BurstLength等于DMA数据传输长度时,才应使用此函数。
* @retval HAL状态
* /
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef * htim,uint32_t的BurstBaseAddress,uint32_t的BurstRequestSrc,
                                              uint32_t的* BurstBuffer,uint32_t的BurstLength)





第二个是HAL_TIM_IC_Start_DMA()
这两个用起来有什么区别
/ **
* @brief启动在TIM输入捕捉测量DMA模式。
* @param htim TIM输入捕获句柄
* @param通道TIM通道启用
*该参数可以是以下值之一:
* @arg TIM_CHANNEL_1:TIM通道1已选择
* @arg TIM_CHANNEL_2:TIM通道2已选择
* @arg TIM_CHANNEL_3 :已选择TIM通道3
* @arg TIM_CHANNEL_4:TIM通道4已选择
* @param pData目标缓冲区地址。
* @param长度从TIM外设传输到存储器的数据长度。
* @retval HAL状态
* /
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef * htim,uint32_t通道,uint32_t * pData,uint16_t长度)



butterflyspring 发表于 2020-3-16 17:31:27

第一个函数是说定时器具有burst传输。也就是一次DMA请求可以搬运一组数据。因此需要目标寄存器基地址和长度作为参数。 这个在手册上有描述,并且在寄存器处增加了一个例子说明。 第二个函数是输入捕获的DMA模式,将捕获值通过DMA模式存贮到RAM中去。所以需要知道捕获的哪个通道,缓冲区和长度的参数。
页: [1]
查看完整版本: STM32 定时器 的高级用法