在STM32H743II的ADC双重模式下,关于DMA请求和数据传输的描述确实可能会让人感到困惑。根据RM0433 Rev8的描述,我们一起来梳理一下这个问题。
1. 双重模式下的DMA请求和数据传输
在双重模式下,ADC可以配置为交替模式或规则同步模式。当DAMDF(DMA Mode for Dual ADC Mode)设置为0b11时,每产生一个DMA请求,会以半字(16位)的形式传输表示两个ADC转换数据项的两个字节。这意味着每次DMA请求会传输两个8位的ADC转换结果,分别来自两个ADC(ADC1和ADC2)。
2. 关于4个新的8位值产生DMA请求的描述
手册中提到,当有4个新的8位值可用时,会发出新的DMA请求。这里的“4个新的8位值”实际上指的是两个ADC各自的两个转换结果。也就是说,每个ADC会产生两个8位的转换结果,总共4个8位值,因此会触发一个DMA请求。
3. ADC_CDR寄存器的数据
在双重模式下,ADC_CDR寄存器用于存储两个ADC的转换结果。根据手册的描述,ADC_CDR寄存器的低16位存储ADC1的转换结果,高16位存储ADC2的转换结果。因此,每次DMA请求传输的16位数据实际上是ADC_CDR寄存器的低16位,即ADC1的转换结果。
4. 你的测试现象
你提到在测试时发现,是两个字节就会产生DMA请求,且ADC_CDR寄存器只有低16位有数据,高16位没有数据。这个现象与手册中的描述是一致的。每次DMA请求传输的是ADC_CDR寄存器的低16位,即ADC1的转换结果。高16位(ADC2的转换结果)在下一个DMA请求中传输。
5. 手册中的描述是否矛盾
手册中的描述并不矛盾,但可能需要更仔细地理解。当DAMDF=0b11时,每次DMA请求传输的是ADC_CDR寄存器的低16位(ADC1的转换结果),而高16位(ADC2的转换结果)会在下一个DMA请求中传输。因此,每两个字节(16位)产生一个DMA请求是正确的。
6. 总结
你的测试现象是正确的。在双重模式下,每次DMA请求传输的是ADC_CDR寄存器的低16位(ADC1的转换结果),高16位(ADC2的转换结果)会在下一个DMA请求中传输。手册中的描述是准确的,但需要理解每次DMA请求传输的是ADC_CDR寄存器的低16位。
希望这个解释能帮助你更好地理解STM32H743II ADC双重模式下的DMA请求和数据传输机制。如果还有其他问题,欢迎继续讨论!
在STM32H743II的ADC双重模式下,关于DMA请求和数据传输的描述确实可能会让人感到困惑。根据RM0433 Rev8的描述,我们一起来梳理一下这个问题。
1. 双重模式下的DMA请求和数据传输
在双重模式下,ADC可以配置为交替模式或规则同步模式。当DAMDF(DMA Mode for Dual ADC Mode)设置为0b11时,每产生一个DMA请求,会以半字(16位)的形式传输表示两个ADC转换数据项的两个字节。这意味着每次DMA请求会传输两个8位的ADC转换结果,分别来自两个ADC(ADC1和ADC2)。
2. 关于4个新的8位值产生DMA请求的描述
手册中提到,当有4个新的8位值可用时,会发出新的DMA请求。这里的“4个新的8位值”实际上指的是两个ADC各自的两个转换结果。也就是说,每个ADC会产生两个8位的转换结果,总共4个8位值,因此会触发一个DMA请求。
3. ADC_CDR寄存器的数据
在双重模式下,ADC_CDR寄存器用于存储两个ADC的转换结果。根据手册的描述,ADC_CDR寄存器的低16位存储ADC1的转换结果,高16位存储ADC2的转换结果。因此,每次DMA请求传输的16位数据实际上是ADC_CDR寄存器的低16位,即ADC1的转换结果。
4. 你的测试现象
你提到在测试时发现,是两个字节就会产生DMA请求,且ADC_CDR寄存器只有低16位有数据,高16位没有数据。这个现象与手册中的描述是一致的。每次DMA请求传输的是ADC_CDR寄存器的低16位,即ADC1的转换结果。高16位(ADC2的转换结果)在下一个DMA请求中传输。
5. 手册中的描述是否矛盾
手册中的描述并不矛盾,但可能需要更仔细地理解。当DAMDF=0b11时,每次DMA请求传输的是ADC_CDR寄存器的低16位(ADC1的转换结果),而高16位(ADC2的转换结果)会在下一个DMA请求中传输。因此,每两个字节(16位)产生一个DMA请求是正确的。
6. 总结
你的测试现象是正确的。在双重模式下,每次DMA请求传输的是ADC_CDR寄存器的低16位(ADC1的转换结果),高16位(ADC2的转换结果)会在下一个DMA请求中传输。手册中的描述是准确的,但需要理解每次DMA请求传输的是ADC_CDR寄存器的低16位。
希望这个解释能帮助你更好地理解STM32H743II ADC双重模式下的DMA请求和数据传输机制。如果还有其他问题,欢迎继续讨论!
举报