HX8369 驱动调试总结

S5PV210 -- HX8369 LCD 驱动 在u-boot中配置hx8369,IO模拟SPI. #include #include #include #ifdef CONFIG_GZSD210_LCD static void set_cs(int cs) { int reg; reg = readl(GPF1DAT); reg &= ~(0x1 << 5); reg |= (cs << 5); writel(reg,GP 阅读详情

NOTE:首先确定自己需要什么样的LCD接口,有大致份分MCU和RGB两种,买LCM之前一定要说清避免买回来的不能用,还有一定要给LCM厂要模组资料以及IC资料和调试代码,节省自己的宝贵时间。

我因为使用的是s3c2440 CPU所以就选择了RGB接口的LCM。

拿到LCM后首先看其数据手册,按照数据手册画LCD的电路,一定要仔细看手册,按照手册将相应的无用引脚做接地或拉高处理。

连接完成后一定要仔细检查电气连通性,尤其FPC连通测试。

调试尽量先用熟悉的单片机将屏点亮。测试初始化代码以及屏的好坏。


1.初始化

任何一个LCD屏都是要初始化的,无论是MCU接口还是RGB接口。

对于RGB接口使用的是3线或4线的SPI串口初始化,对于MCU接口使用80或86接口初始化,具体需要根据芯片手册或屏的手册在引脚上做配置。

对于HX8369:




根据上面的说明配置引脚选择接口模式

我的配置是 1101即3线SPI 的RGB接口模式

配置完接口接下来就是调试初始化代码了,一下的代码是基于stm32的  //NOTE:一定要跟模组厂要对代码,大部分模组厂说我给你的代码没问题,但是呵呵了,注意代码中的延时

#include "lcd_botton.h"
#include "core_cm3.h"
#include "sysTick.h"

//*************************定义控制引脚的宏**********************************//
#define  set_cs  GPIO_SetBits(GPIOD, GPIO_Pin_9)
#define  reset_cs  GPIO_ResetBits(GPIOD, GPIO_Pin_9)
#define  set_clk  GPIO_SetBits(GPIOD, GPIO_Pin_1)
#define  reset_clk  GPIO_ResetBits( GPIOD, GPIO_Pin_1)
#define  set_sdi  GPIO_SetBits(GPIOD, GPIO_Pin_8)
#define  reset_sdi  GPIO_ResetBits( GPIOD, GPIO_Pin_8)
#define  set_res  GPIO_SetBits(GPIOD, GPIO_Pin_0)
#define  reset_res  GPIO_ResetBits(GPIOD, GPIO_Pin_0)




 //*******控制引脚的初始化***********************//
  
void LCD_GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure; 
    /* 使能FSMC对应相应管脚时钟*/
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD , ENABLE);
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
    
    set_cs;
set_res;
    set_clk;
    set_sdi;
 
}

//************复位lcd函数************//
void rest_lcd()
{
  set_res;
    Delay_us(10000);
    reset_res;
Delay_us(10000);
set_res;
    Delay_us(120000);
}


//***********发送命令函数*****************//
void send_cmd(uint8_t cmd)
{
  unsigned char i;
reset_cs;
 Delay_us(10);
reset_clk;
reset_sdi;
Delay_us(100);
set_clk;
 Delay_us(100);
for(i=0;i<8;i++)
    {
    reset_clk; 
  
      if (cmd&0x80)
       {
          set_sdi;
        }
       else
         {
         reset_sdi;
}
    Delay_us(100);
      set_clk;
Delay_us(100);
      cmd=cmd<<1;
    }
set_cs;
 Delay_us(10);
}


//**************发送数据函数**********************//
void send_date(uint8_t date)
{
  unsigned char i;
 reset_cs;
 Delay_us(10);
reset_clk;
set_sdi;
Delay_us(100);
set_clk;
 Delay_us(100);
for(i=0;i<8;i++)
    {
    reset_clk; 
  
      if (date&0x80)
       {
          set_sdi;
        }
       else
         {
         reset_sdi;
}
    Delay_us(100);
      set_clk;
Delay_us(100);
      date=date<<1;
    }
set_cs;
 Delay_us(10);
 
}

//*************配置HX8369函数*****************//
 void lcd_config()
 {


 rest_lcd(); //首先初始化


send_cmd(0xB9);  // 设置扩展命令,按照芯片手册填入数据
        send_date(0xFF);     
        send_date(0x83);     
        send_date(0x69);  
  
        send_cmd(0xB1);  //设置电压  ,相关参数参照芯片手册设置 
        send_date(0x01);                             
        send_date(0x00);                             
        send_date(0x34);                             
        send_date(0x06);                             
        send_date(0x00);                             
        send_date(0x11);                             
        send_date(0x11);                             
        send_date(0x2A);        //    VSPR regulator output control setting for source data output driving  根据需要调节这个                     
        send_date(0x32);          //     VSNR regulator output control setting for source data output driving           根据需要调节这个        
        send_date(0x3F);          //  The positive polarity gamma amplitude voltage setting (VSPR-VGSP).          根据需要调节这个         
        send_date(0x3F);           // The negitive polarity gamma amplitude voltage setting (VSNR-VGSN).          根据需要调节这个         
        send_date(0x07);                             
        send_date(0x23);                             
        send_date(0x01);                             
        send_date(0xE6);                             
        send_date(0xE6);                             
        send_date(0xE6);                             
        send_date(0xE6);                             
        send_date(0xE6);  
  
  
        send_cmd(0xB2);  // 设置显示参数480*800
        send_date(0x00);     
        send_date(0x2B);     //设置分辨率 接口模式根据需要设置
        send_date(0x03);     
        send_date(0x03);     
        send_date(0x70);     
        send_date(0x00);     
        send_date(0xFF);     
        send_date(0x00);    
        send_date(0x00);   
        send_date(0x00);   
        send_date(0x00);   
        send_date(0x03);     
        send_date(0x03);     
        send_date(0x00);     
        send_date(0x01);  
  
        send_cmd(0xB4);  // 设置显示波形  480*800
        send_date(0x00);     //00 列 05 1dot 0A 2dot 根据需要配置
        send_date(0x0C);     
        send_date(0xA0);   
        send_date(0x0E);     
        send_date(0x06);  
  
        send_cmd(0xB6);  // 设置VCOM 电压大小
        send_date(0x10);     
        send_date(0x10);  
  
  
        send_cmd(0xD5);  // This command is used for GIP timing output control.   对于RGB接口很重要
        send_date(0x00);     
        send_date(0x05);     
        send_date(0x03);     
        send_date(0x00);     
        send_date(0x01);     
        send_date(0x09);     
        send_date(0x10);     
        send_date(0x80);     
        send_date(0x37);     
        send_date(0x37);     
        send_date(0x20);     
        send_date(0x31);     
        send_date(0x46);     
        send_date(0x8A);     
        send_date(0x57);     
        send_date(0x9B);     
        send_date(0x20);     
        send_date(0x31);     
        send_date(0x46);     
        send_date(0x8A);     
        send_date(0x57);     
        send_date(0x9B);     
        send_date(0x07);     
        send_date(0x0F);     
        send_date(0x02);     
        send_date(0x00);  
  
        send_cmd(0xE0); // Set gamma curve related setting 设置色调曲线的
        send_date(0x00);   
        send_date(0x08);   
        send_date(0x0D);   
        send_date(0x2D);   
        send_date(0x34);   
        send_date(0x3F);   
        send_date(0x19);   
        send_date(0x38);   
        send_date(0x09);   
        send_date(0x0E);   
        send_date(0x0E);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x13);   
        send_date(0x19);   
        send_date(0x00);   
        send_date(0x08);   
        send_date(0x0D);   
        send_date(0x2D);   
        send_date(0x34);   
        send_date(0x3F);   
        send_date(0x19);   
        send_date(0x38);   
        send_date(0x09);   
        send_date(0x0E);   
        send_date(0x0E);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x12);   
        send_date(0x14);   
        send_date(0x13);   
        send_date(0x19);   
  Delay_us(50000);   
  
    send_cmd(0xC1);   //设置调色板 一定要设置
    send_date(0x01); //enable DGC function   
    send_date(0x02); //SET R-GAMMA   
    send_date(0x08);   

高通安卓调试LCD几方面总结(一) 来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记。    不啰嗦了,开入正题。来公司一个月左右的时间,主要接触了高通android4.0和android2.3的LCD驱动,当然在bootloader下LCD的驱动我也调试的。      (1) kernel    先来说一下kernel里L 阅读详情

相关推荐

MTK平台LCD驱动移植与调试实战指南

本文详细介绍了MTK平台LCD驱动移植与调试的实战指南,包括移植前的准备工作、LK阶段驱动移植详解、Kernel阶段驱动调试技巧以及高级调试与性能优化方法。通过具体案例和代码示例,帮助开发者快速掌握LCD驱动移植的关键步骤和常见问题解决方案,提升调试效率。

weixin_29164185的博客 92

hx8379c驱动代码

MTK智能机平台上HX8379c的驱动代码

HX8369A_datasheet

HX8369A芯片资料,对调试该IC很管用哟!

HX8369-A_DS_preliminary_v01.pdf

Himax Hx8369 LCD Driver IC Datasheet. 480RGB x 864 dot, 16.7M color,with internal GRAM,TFT Mobile Single Chip Driver.

HX8369-A01_DS_v03.02_110617.pdf

HX8369-A01_DS_v03.02_110617.pdf

初始化代码

3.5寸WVGA 配HX8369a01 初始化代码

称重_oled_hx711_stm32f103zet6_STM32称重_

基于STM32单片机设计的 1kg称重传感器,通过OLED屏幕显示重量情况

VFH避障/局部路径规划算法

VFH避障/局部路径规划算法 本文章是我看《The Vector Field Histogram-Fast Obstacle Avoidance for Mobile Robots》论文时候的笔记,感兴趣的欢迎去看原论文。 VFH中有一些概念是从其他算法中借鉴过来的,并且VFH算法本身就是对VFF(Virtural Force Field)的一种改进,其中有很多的相似之处。所以按照原论文的思路,先介绍由CMU提出的Certainty Grid算法中的一些概念,再介绍一下势场法中的一些概念,接着介绍一下VFF

qq_41845878的博客 8120

别再只用真彩色了!手把手教你用ENVI主成分分析(PCA)给遥感图像‘美颜’与‘瘦身’

本文详细介绍了如何利用ENVI主成分分析(PCA)技术优化遥感图像处理,实现数据‘美颜’与‘瘦身’。通过PCA的维度压缩、噪声分离和特征增强三大优势,显著提升高光谱数据的可视化效果和分析效率。文章还提供了ENVI操作的最佳实践和常见问题解决方案,帮助读者掌握这一遥感图像处理的游戏规则改变者。

weixin_28465009的博客 276

Bulk / Smart-seq2数据分析一般流程

Bulk RNA-seq(RNA-Seq of bulk samples)是一种RNA-Seq技术应用,它是通过将整个组织或细胞群体的RNA提取并混合,进行高通量测序来分析基因表达的技术。转录本定量结果可以用于后续的差异表达分析和聚类分析。功能注释和富集分析:对差异表达基因进行功能注释和富集分析,以帮助理解差异表达基因的功能和调控网络,从而获得对研究样品的更深入的理解。数据可视化:最后,将聚类分析的结果进行可视化,可以使用常见的数据可视化工具,如ggplot2、Plotly等,来帮助用户更好地理解数据。

weixin_54519672的博客 5350

Stanford Dogs 犬类识别实战:基于 YOLOv8 的 120 类目标检测与图形界面实现

本项目通过YOLOv8实现了Stanford Dogs数据集的目标检测功能,完整包含了数据准备、模型训练、检测推理、图形界面四大模块。初学者使用YOLOv8n(nano版)加速训练,熟悉流程后可切换到YOLOv8s/m。图像上传与检测可进一步增强,例如显示识别框、标注标签。可以添加模型选择、检测阈值调整等功能,提升实用性。通过网盘分享的文件:基于yolov8的狗类品种识别系统链接: https://pan.baidu.com/s/1UYV4h2WnK1RxWWKoPrS-RA?

FJN110的博客 84

YOLOv5基于深度学习的道路缺陷检测系统

然而,由于长期的自然侵蚀、车辆磨损等因素,道路表面容易出现裂缝、坑洼等缺陷。这些缺陷不仅会影响驾驶舒适性,还可能引发交通事故,尤其是在恶劣天气或夜间行车条件下。随着人工智能技术的快速发展,基于深度学习的道路缺陷检测技术能够在降低人力成本的同时提高检测效率,为道路维护提供了新的解决方案。本项目构建了基于YOLOv5的道路缺陷检测系统,结合PyQt5开发了用户友好的UI界面,具备实时检测和图片分析功能。工具对图片进行标注,生成YOLO格式的标注文件。上传包含道路裂缝或坑洼的图片,系统会标注出缺陷的位置及类别。

YOLO 1076

锐捷 MPLS VPN 配置

ISP内部配置 , PE设备和CE设备之间的接口不开启 ( 只在物理接口上配置 , loopback 口不配置 )最后一步关闭 ipv4 单播 , 如果你发现路由奇奇怪怪的 , 可以尝试一下。both --> 同时配置 import export 值。绑定后接口会重置 , 且接口的路由会转到VRF路由表中。这里基本上绑定了 vrf 实例的接口都需要宣告进去。vpnv 4 通道是用来传递 mpls 路由的。先建立邻居管理,建立VPNV4通道。这里要做双向引入 , 才会有路由。export 导出值。

dekangzou的博客 1712

组合预测模型 | LSTM-XGBoost长短期记忆神经网络结合极限梯度提升树时间序列预测(Matlab程序)

组合预测模型 | LSTM-XGBoost长短期记忆神经网络结合极限梯度提升树时间序列预测(Matlab完整程序)

前程算法屋的博客 2180

【QT开发教程】Qt中的数据加密与解密

在现代应用程序中,数据加密与解密是保护敏感信息的重要手段。Qt本身并不直接提供数据加密与解密的支持,但可以使用第三方库,如OpenSSL或Crypto++,来实现这一功能。本文将介绍如何在Qt中使用OpenSSL进行数据加密与解密,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 1157

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: S3C2440之LCD
下一篇: UBOOT LCD驱动流程
小艾的01
博客等级 码龄14年 121粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值