STM32F373 SDADC Hal-为什么在单端零参考模式下Hal_SDADC_Start_DMA中对pData使用uint32_t类型?

STM32F373 SDADC Hal-为什么在单端零参考模式下Hal_SDADC_Start_DMA中对pData使用uint32_t类型?,stm32,hal,Stm32,Hal,我是新代码,我尝试使用Hal库学习STM32F373的SDADC。在第9/28页中,裁剪如下: 转换后的值的范围从-32767到+32767,所以这个范围必须是int32,对吗 这里我从603页截取 此库使用uint32_t类型转换数据 所以我的问题是为什么Hal使用uint32\u t而不是int32\u t来存储负值 谢谢 p/S:我的代码: __IO int16_t SDADC1_Values[SDADC1_BUFFER_SIZE]; HAL_SDADC_Start_DMA(&

我是新代码,我尝试使用Hal库学习STM32F373的SDADC。在第9/28页中,裁剪如下:

转换后的值的范围从-32767到+32767,所以这个范围必须是int32,对吗

这里我从603页截取

此库使用uint32_t类型转换数据

所以我的问题是为什么Hal使用uint32\u t而不是int32\u t来存储负值

谢谢

p/S:我的代码:

__IO int16_t SDADC1_Values[SDADC1_BUFFER_SIZE];

HAL_SDADC_Start_DMA(&hsdadc1, (uint32_t*) SDADC1_Values, SDADC1_BUFFER_SIZE);

你在这里用什么类型都不重要。老实说,它应该是
void*
,以避免愚蠢的不必要的警告。

在这里使用什么类型并不重要。老实说,它应该是
void*
,以避免愚蠢的不必要的警告。

这个答案不是建设性的。请解释为什么这不重要。这个答案没有建设性。请解释为什么不重要。好问题,我也想知道DMA是如何将uint32_t样本加载到int16_t缓冲区的。这不需要两倍的缓冲区长度吗?这个设备是如何将int16 ADC样本转换成uint32_t的?好问题,我也想知道DMA是如何将uint32_t样本加载到int16_t缓冲区的。这不需要两倍的缓冲区长度吗?该设备如何将int16 ADC采样转换为uint32\t?