
不采用dma,HAL_SPI_Transmit刷屏正常。使用dma方式,使用HAL_SPI_Transmit_DMA每次发一个点16位数据,颜色不对。使用HAL_SPI_Transmit_DMA单色刷整屏,没颜色。 dma设置如下: hdma_spi1_tx.Instance = DMA1_Channel3; hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_spi1_tx.Init.MemInc = DMA_MINC_DISABLE; hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD; hdma_spi1_tx.Init.MemDataAlignment = DMA_PDATAALIGN_HALFWORD; hdma_spi1_tx.Init.Mode = DMA_NORMAL; hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW; if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } |
解决了吗?确实加状态判断用DMA还有什么意义?楼主我也遇到这个问题,还会花屏。
我也遇到这个问题,加了状态的死等还会花屏,状态死等还用DMA有什么意义,楼主解决了吗?分享下?