芯片型号是STM32H743II。 按照RM0433 Rev8 990页中的描述,当ADC配置为双重模式(交替模式或者规则同步模式),DAMDF=0b11时,每产生一个DMA请求,就会以半字的形式传输表示两个ADC转换数据项的两个字节。 紧接着一段话又说当有4个新的8位值可用时,会发出新的DMA请求。并且给的示例中也是4个数据项产生一个DMA请求(在这里ADC_CDR寄存器)。 但是我在测试时发现,是两个字节就会产生DMA请求,也就是说ADC_CDR寄存器只有低16位有数据,高16位是没有数据的。 所以想请教一下大佬们,手册中的说法是否矛盾,我的测试现象是否正确? |
STM32H7打开DCache后,串口1DMA接受数据位空
STM32H7,使用LWIP通信,数据量过大会卡死。
LQFP100 STM32H750的ADC快速通道如何配置最高采样率呢
关于STM32F4的ADC测量不准确
与HAL_ADC_Start_DMA相关的一个十分怪异的问题
STM32CubeIDE STM32H743XIH6,串口无法重定向,且发送内容波特率不对乱码
STM32H7,ADC_IRQHandler和ADC3_IRQHandler这两个中断入口函数在使用上有何区别?
H7 SPI DMA模式下还支持帧间延迟吗?
STM32H743做数字电源,HRTIM问题
STM32H750 使用定时器比较通道触发DMA操作GPIO,偶尔会发生第一个脉冲宽度过短
结合你、我的测试,初步认为,在DAMDF=0b11时,文档中提到的“when 4 new 8-bit values are available”应该是有问题的。
实际情况是每次DMA请求传输两个8位的ADC转换结果,而不是等待4个新的8位值,使用的是CDR寄存器的低半字。
而且这个结果也是可以理解的。