chendong316 发表于 2021-4-28 23:17

HC32F460 ADC DMA

我想问一下,我先用8个ADC 通道填充一个data 的数组, N=256, M=8 通道,发现只能填充data-到data,有数,其他都没数据。我这样设置对吗?stcDmaCfg.u16BlockSize       = ADC1_SA_CHANNEL_COUNT;//一次8个数据 ADC1_SA_CHANNEL_COUNT= 8
           stcDmaCfg.u16TransferCnt = 0;
           stcDmaCfg.u32SrcAddr         = (uint32_t)(&M4_ADC1->DR0);
           stcDmaCfg.u32DesAddr         = (uint32_t)dma_ad_val;//dma_ad_val
           stcDmaCfg.u16DesRptSize        = ADC1_SA_CHANNEL_COUNT;
           stcDmaCfg.u16SrcRptSize        = ADC1_SA_CHANNEL_COUNT;
           stcDmaCfg.u32DmaLlp                = 0u;
           stcDmaCfg.stcSrcNseqCfg.u16Cnt       = 0u;
           stcDmaCfg.stcSrcNseqCfg.u32Offset = 0u;
           stcDmaCfg.stcDesNseqCfg.u16Cnt       = 0u;
           stcDmaCfg.stcDesNseqCfg.u32Offset = 0u;
           stcDmaCfg.stcDmaChCfg.enSrcInc       = AddressIncrease;
           stcDmaCfg.stcDmaChCfg.enDesInc       = AddressIncrease;
           stcDmaCfg.stcDmaChCfg.enSrcRptEn= Enable;
           stcDmaCfg.stcDmaChCfg.enDesRptEn= Enable;
           stcDmaCfg.stcDmaChCfg.enSrcNseqEn = Disable;
           stcDmaCfg.stcDmaChCfg.enDesNseqEn = Disable;
           stcDmaCfg.stcDmaChCfg.enTrnWidth= Dma16Bit;
           stcDmaCfg.stcDmaChCfg.enLlpEn       = Disable;
   /* Enable DMA interrupt. */
           stcDmaCfg.stcDmaChCfg.enIntEn       = Enable;

hxf0756 发表于 2021-5-11 14:21

stcDmaCfg.u16DesRptSize      = ADC1_SA_CHANNEL_COUNT*256; 建议着这么设置;

wenbilin 发表于 2021-8-17 20:19

超过了1024
页: [1]
查看完整版本: HC32F460 ADC DMA