想问各位大大一下,STM32H7 SPI1通过DMA收发数据问题,按原子兄的例程配置好了通道,如下
MYDMA_Config(DMA2_Stream2,37,(u32)&SPI1->RXDR,(u32)Rx_Buffer0,3,0);//关联相应通道的DMA RX 0表示外设到内存
MYDMA_Config(DMA2_Stream3,38,(u32)&SPI1->TXDR,(u32)Tx_Buffer0,3,1);//关联相应通道的DMA TX 1表示内存到外设
启动传输过程如下:
MYDMA_Enable(DMA2_Stream3,(u32)dat_ptr,rx_size);//开始一次DMA TX传输!
MYDMA_Enable(DMA2_Stream2,(u32)dat_ptr,rx_size);//开始一次DMA RX传输!
SPI1->CFG1 |= 1<<14; //RX DMA ENABLE
SPI1->CFG1 |= 1<<15; //TX DMA ENABLE
temp = 0xffffff;
while ((((DMA2->LISR )&(1<<27))==RESET) && temp--);
temp = 0xffffff;
while ((((DMA2->LISR )&(1<<21))==RESET) && temp--);
DMA2->LIFCR |= (1<<27);
DMA2->LIFCR |= (1<<21);
SPI1->CFG1 &= ~(1<<14); //RX DMA DISABLE
SPI1->CFG1 &= ~(1<<15); //TX DMA DISABLE
但是实际时看了clk,dma传输没有启动起来,各位看看是怎么回事呢,是启动时漏了什么步骤吗?(前面的配置应该没有问题,我的串口DMA传输正常)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>