本帖最后由 jinglixixi 于 2021-3-10 12:37 编辑
TFT显示屏有多种类型,常见有2.2 /2.4/2.8/3.2/3.5/4.0寸等,多采用SPI接口工作。这里介绍的2.8寸显示屏也是采用SPI接口,且带有触摸的功能。 为了便于移植使用,这里以I/O口来模拟SPI接口来驱动它,其与MCU的连接关系如下: CS---PB13 RES---PB11 DC--- PB12 SDA--- PB9 SCK--- PB8 BLK--- PB14 定义相关引脚输出高低电平的引脚为: #defineLCD_CS_High() GPIO_SetBits(GPIOB,GPIO_Pins_13) //CS #defineLCD_CS_Low() GPIO_ResetBits(GPIOB,GPIO_Pins_13)
#defineLCD_REST_High() GPIO_SetBits(GPIOB, GPIO_Pins_11) //RES #defineLCD_REST_Low() GPIO_ResetBits(GPIOB,GPIO_Pins_11)
#defineLCD_DC_High() GPIO_SetBits(GPIOB,GPIO_Pins_12) //DC #defineLCD_DC_Low() GPIO_ResetBits(GPIOB,GPIO_Pins_12)
#defineLCD_SDI_High() GPIO_SetBits(GPIOB, GPIO_Pins_9) //SDA #defineLCD_SDI_Low() GPIO_ResetBits(GPIOB,GPIO_Pins_9)
#defineLCD_SCK_High() GPIO_SetBits(GPIOB,GPIO_Pins_8) //SCK #defineLCD_SCK_Low() GPIO_ResetBits(GPIOB,GPIO_Pins_8)
#defineLCD_LED_High() GPIO_SetBits(GPIOB, GPIO_Pins_14) //BLK #defineLCD_LED_Low() GPIO_ResetBits(GPIOB,GPIO_Pins_14) 模拟SPI发送数据的函数为: - void LCD_Writ_Bus(unsigned char com)
- {
- unsigned char uci;
- for(uci=0;uci<8;uci++)
- {
- if(com & 0x80)
- {
- LCD_SDI_High();
- }
- else
- {
- LCD_SDI_Low();
- }
- com = com << 1;
- Delay_us(1);
- LCD_SCK_Low();
- LCD_SCK_High();
- }
- }
显示屏的初始化函数为:
|