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

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

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题_第1张图片

dma data width配置为half word模式

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题_第2张图片

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

stm32h7 adc dma多通道数据采集HAL_ADC_Start_DMA函数问题_第3张图片

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

文档中给出的说明为

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函数问题_第4张图片

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

 

你可能感兴趣的:(stm32)