最近用到stm32h7数据采集,用定时器触转换完成后触发dma写入ram。adc1配置如下

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题

dma data width配置为half word模式

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题

调用函数HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&adc_val, 4);传输了8byte:

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题

dma data width配置为byte模式后传输了4字节:

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题

文档中给出的说明为

Parameters:

hadc,: ADC handle
pData,: Destination Buffer address.
Length,: Length of data to be transferred from ADC peripheral to memory (in bytes)

查看源码,Length被赋值给了NDTR:

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题

也就是说这里Length的参数不应该是数据长度,应该是数据数量。

 

相关文章:

  • 2022-03-04
  • 2021-04-06
  • 2022-12-23
  • 2021-04-25
  • 2021-09-17
  • 2021-07-28
  • 2021-09-14
  • 2021-07-29
猜你喜欢
  • 2021-10-20
  • 2022-12-23
  • 2021-07-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案