通过AutoGen Studio做了如下配置:
1)ADC:5个通道,通过CTU TIMER0每隔1s触发一次采样
2)DMA:使能DMA通道1,用于从ADC数据寄存器取数据到内存,transferNum = 5
然后自动生成代码。
代码中自动生成了一个adcDmaBuffer[6] = { 0 } 的数组,长度为6;
DMA初始化的时候,有两句代码:
dmaConfig.memStartAddr = (uint32_t)&adcDmaBuffer[0];
dmaConfig.memStartAddr = (uint32_t)&adcDmaBuffer[6];
有两个问题:
1. 配置ADC通道数量为5, DMA传输数量也是5,但是代码中的buffer长度为6,
是不是因为DMA读写的是MEMENDADDR-4的原因?adcDmaBuffer最后一个不会被读写?
2. 初始化代码中(uint32_t)&adcDmaBuffer[6]是不是越界了。。。?
|