非常感谢你的解答,我的采集函数也是在TPM中断里面进行的,为什么你上面说“ADC采样完成后自动触发DMA0转移2个字节的数据”,怎么才转移两个字节呢,你在这里设置的是0xFFFC0啊,不应该是转移了0xfffC0个字节吗?还是我哪里理解错了呢
DMA_Init((void*)(&ADC0_RB), /* AD数据源地址 */
(void*)(pwAdData_Align), /* AD数据存放目的地址 */
(void*)(pucAdChl_Align), /* AD通道列表源地址 */
(void*)(&ADC0_SC1B), /* AD通道选择目的地址 */
0xFFFC0); /* 最大转移数量,减少DMA中断次数 */
因为我测的电压是不变的,我上面说的,一下子转移了128个数据,这128个数据,是相近而不同的,数据也是对的,所以就是不明白,这样子就算采集了128次?还是只采集了一次?如果不用DMA的话,貌似采集一次需要2~3us,而我现在采集128个数据的时间次20us,ADC也是使能了硬件滤波的,感觉好奇怪,一下子省了这么多时间,有点怀疑,主要就是不理解,转移了256个字节,是不是就指采集了128次? |