下面语句指明了各引脚的连接方式:- #define LCD_RESET_CLEAR HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET)
- #define LCD_RESET_SET HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET)
- #define LCD_CS_CLEAR HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_RESET)
- #define LCD_CS_SET HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET)
- #define LCD_DC_CLEAR HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_RESET)
- #define LCD_DC_SET HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1, GPIO_PIN_SET)
向控制器写入数据分为两种:命令及参数。当然有些命令还带返回值,这里都忽略了。
需要注意的是ILI9341中的数据,一般都是8位的,但是颜色数据都是16位的。
LCD命令及数据函数如下:- void LCD_Write_Cmd(uint8_t cmd)
- {
- LCD_CS_CLEAR;
- LCD_DC_CLEAR;
-
- HAL_SPI_Transmit(&hspi1, &cmd, 1, 500);
-
- LCD_CS_SET;
-
- }
- void LCD_Write_Dat(uint8_t dat)
- {
- LCD_CS_CLEAR;
- LCD_DC_SET;
-
- HAL_SPI_Transmit(&hspi1, &dat, 1, 500);
-
- LCD_CS_SET;
-
-
- }
- void LCD_Write_Color(uint16_t color)
- {
- uint8_t dat;
-
- LCD_CS_CLEAR;
- LCD_DC_SET;
-
- dat = color >> 8;
- HAL_SPI_Transmit(&hspi1, &dat, 1, 50);
-
- dat = color & 0xFF;
- HAL_SPI_Transmit(&hspi1, &dat, 1, 50);
-
- LCD_CS_SET;
-
-
- }
|