TI中文支持网
TI专业的中文技术问题搜集分享网站

CC3220SF DMA+SPI 无法启动

代码如下:

UDMACC32XX_init();
UDMACC32XX_open();

uDMAChannelAssign(UDMA_CH6_GSPI_RX);
uDMAChannelControlSet(UDMA_CH6_GSPI_RX|UDMA_PRI_SELECT, UDMA_SIZE_32|UDMA_SRC_INC_NONE|UDMA_DST_INC_32|UDMA_ARB_1024); 
uDMAChannelTransferSet(UDMA_CH6_GSPI_RX|UDMA_PRI_SELECT,UDMA_MODE_BASIC,(void *)(GSPI_BASE + MCSPI_O_RX0),(void *) &dmaRxBuffer[2], 1024); 
uDMAChannelEnable(UDMA_CH6_GSPI_RX);

checkdma = uDMAChannelIsEnabled(UDMA_CH6_GSPI_RX);

spiParams.bitRate = 24000000; 
spiParams.dataSize= 32; 
spiParams.mode = SPI_MASTER;
spiParams.frameFormat = SPI_POL0_PHA1; 
SPI_open(1,&spiParams);

SPIDmaEnable( GSPI_BASE,SPI_RX_DMA);
SPIIntRegister(GSPI_BASE,SPIIntHandler); 
SPIIntClear(GSPI_BASE, SPI_INT_EOW);
SPIIntEnable(GSPI_BASE, SPI_INT_EOW);
SPIEnable(GSPI_BASE);

void SPIIntHandler(void)

{

    UART_PRINT("\n/********Enter_SpiDmaInterrupt***********/\n");

}

checkdma 那里输出为1,就是说UDMA_CH6_GSPI_RX开启了,但是后续一次也没没进中断函数,示波器看也显示dma没有在调spi

请问这个配置哪里出错了,怎么改呢?

user6224149:

ps:最后是想已24MHz的速度用dma从spi的Rx那里搬1024个数据,每个数据32字节,搬进自己的dmaRxBuffer

Viki Shi:

请参考SDK中的SPICC32XXDMA.c 驱动文件

赞(0)
未经允许不得转载:TI中文支持网 » CC3220SF DMA+SPI 无法启动
分享到: 更多 (0)