06-HAL库硬件SPI DMA驱动LCD并移植LVGL 8.3
本节内容将详细介绍如何使用hal库通过硬件spi dma在cubemx中配置及相关注意事项,以及如何使用spi dma驱动lcd显示屏并移植lvgl v8.3。
源码地址:https://www.php.cn/link/d466c07ceb8f2e0704c4da35f9bd11c9
或者关注公众号,在后台回复“SPI DMA”即可获取本章节的源码。
HAL库SPI DMA在CubeMX中的配置
配置SPI DMA在CubeMX中非常简单,只需将SPI1的TX配置为DMA模式,并选择正常模式即可。请注意,不要使用循环模式,否则可能导致LVGL显示异常。
接下来,让我们详细解析配置生成的代码,主要关注DMA的模式配置参数。
/* SPI1 DMA Init *//* SPI1_TX Init */hdma_spi1_tx.Instance = DMA1_Channel3;hdma_spi1_tx.Init.Request = DMA_REQUEST_1;hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE;hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;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();}__HAL_LINKDMA(spiHandle,hdmatx,hdma_spi1_tx);登录后复制
