|
stm32f103
配置spi dma normal模式
是这样用的:
main()
{
...
HAL_SPI_TransmitReceive_DMA(&hspi1,spi1_tx,spi1_rx,20);//先启动一次DMA传输
while
{.....}
}
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi)
{
if (hspi->Instance == SPI1)
{
__HAL_DMA_CLEAR_FLAG(&hdma_spi1_rx, DMA_FLAG_TC2); //清除传输完成标志
HAL_SPI_TransmitReceive_DMA(&hspi1,spi1_tx,spi1_rx,20); //DMA发送完之后再继续调用DMA进行传输
HAL_GPIO_TogglePin(GPIOC,LED_Pin);
}
}
我的疑问是:连续两次DMA调用两帧之间有大概15us的间隔。是哪个环节导致了这个时间间隔
如果用SPI DMA circuit模式会连续发,帧之间无间隔
|
|