打印
[技术问答]

HC32F460 ADC DMA

[复制链接]
2174|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chendong316|  楼主 | 2021-4-28 23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想问一下,我先用8个ADC 通道填充一个data[N][M] 的数组, N=256, M=8 通道,发现只能填充data[0][0]-到data[0][M],有数,其他都没数据。我这样设置对吗?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[256][8]
           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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝