工具/软件:Code Composer Studio
使用相同的硬件和软件、我将每200us 执行16个字的 SPI2 TX DMA。 当我设置 SPIEN 位时、进程开始输出数据。 我 每200us 在 SPI4 RX DMA 上读取一次 OK 中的数据。 问题是 SPI2 TX 不会停止,除非我在大约100us 后清除 SPIEN 位。 波特率为2M、因此有足够的时间。 每200us:
if (((SPI2_DMA_buf[SPI_DMA_SIZE-1]和0xFFFF)!=(SPI4_DMA_buf[SPI_DMA_SIZE-1]))//SPI_DMA_SIZE-1
匹配错误++;
对于(k=0;k<(SPI_DMA_SIZE);k++)
SPI2_DMA_buf[k]+= 1;
/*为 SPI4接收设置 DMA */
spiREG4->INT0 =(spiREG4->INT0 | 0x00010000);//启用 DMAREQEN *
/*为 SPI2传输设置 DMA */
spiREG2->INT0 =(spiREG2->INT0 | 0x00010000);//启用 DMAREQEN *
示波器显示连续数据。 为什么不停止呢?