请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 定时器 的高级用法

[复制链接]
AI++ 提问时间:2020-2-18 19:13 /
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长度)



收藏 评论1 发布时间:2020-2-18 19:13

举报

1个回答
butterflyspring 回答时间:2020-3-16 17:31:27
第一个函数是说定时器具有burst传输。也就是一次DMA请求可以搬运一组数据。因此需要目标寄存器基地址和长度作为参数。 这个在手册上有描述,并且在寄存器处增加了一个例子说明。 第二个函数是输入捕获的DMA模式,将捕获值通过DMA模式存贮到RAM中去。所以需要知道捕获的哪个通道,缓冲区和长度的参数。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版