This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC3200 GPIO下降沿触发DMA传送另外一组GPIO的8bit数据

Other Parts Discussed in Thread: CC3200

Dear TI 工程师:

我需要用到CC3200的PIN_08引脚检测下降沿并触发DMA传送GPIOA1组的数据到内存,DMA读取到设定的数据量产生中断通知CPU处理。在IAR开发环境下主要代码如下:

void PickIntInit()
{

PRCMPeripheralClkEnable(PRCM_GPIOA2, PRCM_RUN_MODE_CLK);

PinTypeGPIO(PIN_08, PIN_MODE_0, false);
PinConfigSet(PIN_08,PIN_STRENGTH_2MA,PIN_TYPE_STD);
GPIODirModeSet(GPIOA2_BASE, 0x2, GPIO_DIR_MODE_IN);


//GPIODMATriggerEnable(GPIOA2_BASE);
GPIOIntTypeSet(GPIOA2_BASE,GPIO_PIN_1,GPIO_FALLING_EDGE);
GPIOIntRegister(GPIOA2_BASE,PickHandler);

GPIOIntEnable(GPIOA2_BASE,GPIO_INT_DMA);
GPIODMATriggerEnable(GPIOA2_BASE);

}

void PickHandler()
{
   int i;
   Report("PICK INT !\r\n");
   bRxDone =1;

MAP_GPIODMATriggerDisable(GPIOA2_BASE);
for(i=0;i<8;i++)
{
Report("ucReadBuf:0x%x \n\r",ucReadBuf[i]);
}


//
// Clear the UART Interrupt
//
GPIOIntClear(GPIOA2_BASE,GPIO_INT_DMA);
}

void main()
{
int i;
//
// Initailizing the board
//
BoardInit();
bRxDone = false;


//
// Initialize uDMA
//
UDMAInit();

PinMuxConfig();

InitTerm();


//
// Display Banner
//
DisplayBanner(APP_NAME);

PickIntInit();

UDMASetupTransfer(UDMA_CH19_GPOIA1,
UDMA_MODE_PER_SCATTER_GATHER,
8,
UDMA_SIZE_8,
UDMA_ARB_1024,
(void *)(GPIOA1_BASE+0x00),
UDMA_SRC_INC_8,
(void *)ucReadBuf,
UDMA_DST_INC_8);


while(1)
{
UDMASetupTransfer(UDMA_CH19_GPOIA1,
UDMA_MODE_PER_SCATTER_GATHER,
8,
UDMA_SIZE_8,
UDMA_ARB_1024,
(void *)(GPIOA1_BASE+0x00),
UDMA_SRC_INC_NONE,
(void *)ucReadBuf,
UDMA_DST_INC_8);


while(!bRxDone)
{

}
bRxDone=0;
Report("GPIODMATriggerEnable\n\r");
GPIODMATriggerEnable(GPIOA2_BASE);

}


}

以上代码中断时每次检测到下降沿都进入,并且读到的GPIOA1数据全部是0,理想状态是DMA传送完8个字节才产生一次中断,能否帮分析一下哪里设置错误。

                                                                                                                                                                                                                                                                          谢谢!