0%

STM32点亮ILI9341驱动的屏幕(HAL库)

STM32F407点亮ILI9341驱动的屏幕

驱动网址

(国内镜像)

https://hub.fastgit.org/afiskon/stm32-ili9341

接线

  • 屏幕的供电是3.3V
  • SCL是时钟,接SCK
  • SDA是输入信号,接MOSI
  • 其他接对应的输出引脚即可

Cube配置

  • SPI设置(不需要设置为全双工 ,只需要设置为纯发送即可)

image-20211215215305442

  • 但是STM32F4使用HAL库配置的时候的结果与github上的驱动效果略有不同,也就是波特率位42.0MBits/s
  • image-20211215201627479

项目配置

先把ili9341文件夹(在src文件夹中)复制到项目文件夹下

image-20211215202205389

然后在此处将其添加到paths

image-20211215202351571

然后通过add existing files to group… 添加ili9341目录下的文件

  • 然后修改ili9341的头文件

  • image-20211215215407292

  • 还有

  • image-20211215215423986

  • 然后在主程序中include相关的头文件

    #include "ili9341.h"
    #include "fonts.h"

粗略写程序如下

{
/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_SPI1_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
ILI9341_Init();
/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
ILI9341_FillScreen(ILI9341_BLUE);
ILI9341_WriteString(0,10,"Hello World!", Font_7x10, ILI9341_WHITE, ILI9341_BLACK);
HAL_Delay(500);
ILI9341_FillScreen(ILI9341_GREEN);
ILI9341_WriteString(0,10,"Hello World!", Font_7x10, ILI9341_WHITE, ILI9341_BLACK);
HAL_Delay(500);
HAL_UART_Transmit(&huart1,textSend,5,500);
}
/* USER CODE END 3 */
}

但是这个驱动的效果不是特别好,刷新比较慢,会有明显的刷新过程

image-20211215220004575