在线时间11 小时
UID2103206
注册时间2017-11-14
NXP金币0
该用户从未签到
注册会员

- 积分
- 67
- 最后登录
- 2019-12-13
|
各位大神,有木有碰到如此问题的,使用iMx.rt1050芯片内部ADC,使用dma进行数据传输,dma基本配置如下:
/* Init the EDMA module */
EDMA_GetDefaultConfig(&config);
EDMA_Init(ADC_DMA_BASEADDR, &config);
EDMA_CreateHandle(&g_adcetcEdmaHandle,ADC_DMA_BASEADDR,ADC_DMA_CHANNEL);
EDMA_PrepareTransfer(&transferConfig, &(ADC1->R[0]), 2, &g_AdcConversionValuef, 2,
2, 2*BUF_SIZE, kEDMA_PeripheralToMemory);
EDMA_SetCallback(&g_adcetcEdmaHandle, EDMA_Callback, NULL);
EDMA_SubmitTransfer(&g_adcetcEdmaHandle, &transferConfig);
EDMA_StartTransfer(&g_adcetcEdmaHandle);
使用的是ADC group 0,配置的源地址也是&(ADC1->R[0]),应该没错误,但为啥dma传输的数据全是0,DMA运行配置应该没问题,因为每次ADC触发转换dma传输一次数据,当传输指定BUF_SIZE次数据后会产生DAM完成中断,我以为是DMA源地址配置错误,但检查没问题,通过 ADC_GetChannelConversionValue(ADC1, 0);去取得的数据又是正常的,求大神指点。
还有个问题就是ADC_ETC配合DMA的问题,比如DMA如下配置
EDMA_PrepareTransfer(&transferConfig, &(ADC1->R[0]), 2, &g_AdcConversionValuef, 2,
2, 2*BUF_SIZE, kEDMA_PeripheralToMemory);
一次ADC_ETC的触发采样,导致DMA传输了BUF_SIZE次,并产生了DMA完成中断,求解释!
|
|