7.1.5 模拟8080驱动程序
/**
* @brief 初始化8080用到的引脚.
* @param none
* @retval none
*/
void lcd_port_8080_init(void)
{
gpio_init_type gpio_init_struct = {0};
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);//使能时钟
crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE);
gpio_init_struct.gpio_pins = GPIO_PINS_13 | GPIO_PINS_5 | GPIO_PINS_7 |GPIO_PINS_4;//配置DC、WR、CS、RD、引脚
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;//输出模式
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;//推挽
gpio_init_struct.gpio_pull = GPIO_PULL_UP;//上拉
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOD, &gpio_init_struct);
gpio_bits_set(GPIOD,GPIO_PINS_4|GPIO_PINS_5);//拉高RD、WR脚
gpio_init_struct.gpio_pins = GPIO_PINS_0 | GPIO_PINS_1 | GPIO_PINS_14 | GPIO_PINS_15;//配置D0、D1、D2、D3
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOD, &gpio_init_struct);
gpio_init_struct.gpio_pins = GPIO_PINS_7 | GPIO_PINS_8 | GPIO_PINS_9 | GPIO_PINS_10;//配置D4、D5、D6、D7
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOE, &gpio_init_struct);
/* lcd reset lines configuration */
gpio_init_struct.gpio_pins = GPIO_PINS_7;//配置RESER引脚
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_pull = GPIO_PULL_UP;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOC, &gpio_init_struct);
/* lcd BL lines configuration */
gpio_init_struct.gpio_pins = GPIO_PINS_6;
gpio_init_struct.gpio_mode = GPIO_MODE_OUTPUT;
gpio_init_struct.gpio_out_type = GPIO_OUTPUT_PUSH_PULL;
gpio_init_struct.gpio_pull = GPIO_PULL_UP;
gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
gpio_init(GPIOA, &gpio_init_struct);
LCD_BL_HIGH;
}
/**
* @brief 8080模拟发送一个字节数据函数.
* @param dat:发送的字节
* @retval none
*/
void SendData(unsigned char dat)
{
if((dat&0x01)==0x01) LCD_D0_HIGH;//一个引脚发送一位数据
else LCD_D0_LOW;
if( (dat&0x02)==0x02) LCD_D1_HIGH;
else LCD_D1_LOW;
if((dat&0x04)==0x04) LCD_D2_HIGH;
else LCD_D2_LOW;
if( (dat&0x08)==0x08 ) LCD_D3_HIGH;
else LCD_D3_LOW;
if((dat&0x10)==0x10) LCD_D4_HIGH;
else LCD_D4_LOW;
if( (dat&0x20)==0x20 ) LCD_D5_HIGH;
else LCD_D5_LOW;
if( (dat&0x40)==0x40) LCD_D6_HIGH;
else LCD_D6_LOW;
if( (dat&0x80)==0x80) LCD_D7_HIGH;
else LCD_D7_LOW;
}
/**
* @brief 写命令函数.
* @param i:要发送的命令
* @retval none
*/
void WriteComm(unsigned int i)
{
LCD_CS_LOW;//片选引脚拉低
LCD_DC_LOW; //DC脚拉低,发送命令
SendData(i);//发送命令
LCD_WR_LOW;//WR脚拉低
LCD_WR_HIGH;//WR脚拉高上升沿写使能
LCD_CS_HIGH;
}
void WriteData(unsigned int i)
{
LCD_CS_LOW;//片选引脚拉低
LCD_DC_HIGH;//DC脚拉高,发送数据
SendData(i);//发送数据
LCD_WR_LOW;//WR脚拉上升沿写使能
LCD_WR_HIGH;
LCD_CS_HIGH;
}
void lcd_8080_init(void)
{
lcd_port_8080_init();//初始化8080引脚
LCD_RESET_HIGH; //复位引脚拉高
delay_ms(200);
LCD_RESET_LOW;
delay_ms(200);
LCD_RESET_HIGH;
WriteComm( 0x11); //退出睡眠
delay_ms(120); //Delay 120ms
WriteComm( 0x36); //行列扫描顺序及RGB/BGR,横放/竖放控制
WriteData(0x00);
WriteComm(0x3A); //定义RGB图像数据格式
WriteData( 0x55);
WriteComm( 0xB2); //Porch Setting
WriteData(0x1F);
WriteData(0x1F);
WriteData(0x00);
WriteData( 0x33);
WriteData( 0x33);
WriteComm( 0xB7); //Gate Control
WriteData(0x73);
WriteComm( 0xBB); //VCOM Setting
WriteData( 0x1E);
WriteComm(0xC0); //LCM Control
WriteData( 0x2C);
WriteComm(0xC2); //VDV and VRH Command Enable
WriteData( 0x01);
WriteComm(0xC3); //VRH Set
WriteData(0x13);
WriteComm(0xC4); //VDV Set
WriteData(0x20);
WriteComm( 0xC6);//Frame Rate Control in Normal Mode
WriteData( 0x0F);
WriteComm( 0xD0); //Power Control
WriteData( 0xA4);
WriteData(0xA1);
WriteComm(0xE0); //Positive Voltage Gamma Control
WriteData(0xF0);
WriteData(0x0C);
WriteData(0x15);
WriteData(0x09);
WriteData(0x09);
WriteData(0x07);
WriteData(0x44);
WriteData(0x50);
WriteData(0x36);
WriteData(0x11);
WriteData(0x10);
WriteData(0x2F);
WriteData(0x35);
WriteComm(0xE1); //Negative Voltage Gamma Control
WriteData(0xF0);
WriteData(0x17);
WriteData(0x1A);
WriteData(0x0C);
WriteData(0x0B);
WriteData(0x25);
WriteData(0x3A);
WriteData(0x43);
WriteData(0x4F);
WriteData(0x19);
WriteData(0x15);
WriteData(0x16);
WriteData(0x30);
WriteData(0x37);
WriteComm( 0xe9); //Equalize time control
WriteData(0x07);
WriteData(0x07);
WriteData(0x03);
WriteComm(0xE7); //SPI2 Enable
WriteData(0x10);
WriteComm(0x21); //Display Inversion On颜色翻转
WriteComm(0x29); //Display on开启显示
lcd_clear(WHITE); //清屏为白色
LCD_BL_LOW; //点亮背光
}
。
-
- GT-HMI Designer用户手册
- GT-HMI Engine用户手册
- 高通字库芯片开发资料
- GTDB-X7ESP高通智匠AI开发板规格书
- GTC-480480TFT40XP模块使用手册
- GTC-480272TFT43XP模块使用手册
- GTC-800480TFT50G模块使用手册
- GTC-800480TFT70GP模块使用手册
- GTC-1024600TFT101GP模块使用手册
- GT-GUI LCD 0.96寸液晶模组数据手册
- GT-GUI LCD 1.9寸液晶模组数据手册
- GT-GUI LCD 3.5寸液晶模组数据手册
- GT-GUI LCD 7.0寸液晶模组数据手册
- GUI-LCD开发板使用手册
- GT5GL128B标准GUI芯片规格书
- GT5GL64芯片产品规格书
高通字库交流群
GT-HMI交流群