• 前言
    上篇介绍了LCD控制器的基本特性, 接下来谈一下寄存器的配置, lCD的寄存器配置主要涉及到的寄存器有
    1.引脚的配置
    2.LCDCON1->LCDCON5配置各种信号
    3.LCDSADDR1->LCDSADDR3 frameBuffer 地址之类的
    由于配置寄存器挺多的内容,所以结合初始化代码来理解寄存器的配置
  • 引脚的配置
    GPIO与LCD控制器共用了一些信号线,为了让LCD控制器能正常使用这些信号线,所以必须配置一下
    GPCUP   = 0xffffffff;   // 禁止内部上拉GPCCON  = 0xaaaaaaaa;   // GPIO管脚用于VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND GPDUP   = 0xffffffff;   // 禁止内部上拉GPDCON  = 0xaaaaaaaa;   // GPIO管脚用于VD[23:8]GPBCON &= ~(GPB0_MSK);  // Power enable pinGPBCON |= GPB0_out;     //将GPB0设置为输出GPBDAT &= ~(1<<0);     // 输出0,关闭LCD背光(这个试一下就知道了)
  • tips: 上面代码要注意一点是,对于GPB0引脚的配置,GPB0从电路图中可以看出对应的是LCD的背光电路供电的引脚,说到这里就要说明一下,使LCD的供电电路一共有3个
    1.背光电路
    2.LCD内部电源接口
    3.LCD外部电源
    从原理图可以看出,背光电路连接的GPIO是GPB0, LCD内部电源GPG4(注意这里不用外部电源,用GPIO控制比较方便)
  • LCDCON1(设置LCD的类型,显示方式)

    1.CLKVAL 即通过前一篇可知是配置VCLK时钟频率,一个VCLK产生一个像素点,所以根据datasheet(前篇文章得知) 1/tc的Typ.值为9,所以根据公式: 9 = 100 / (CLKVAL +1)*2,综合得出结果: CLKVAL = 4
    2.PNRMODE配置屏幕为TFT屏
    3.BPPMODE配置屏幕显示方式为16Bpp,至于具体的比如RGB565还是RGB555需要进一步配置寄存器
    4.ENVID: disable LCD控制器信号,让LCD控制器不要控制LCD屏幕,初期化时一般设置为disable
  • LCDCON2(配置垂直方向的时序参数)

    看到上面这几个参数并不陌生,前文已经接近疯狂的讲解,这里不在赘述
    VBPD取值: 1
    LINEVAL取值: 271
    VFPD取值:1
    VSPW取值:9
  • LCDCON3(水平方向的时序参数)

    HBPD:1
    HOZVAL:479
    HFPD:1
  • LCDCON4(水平方向的时序参数)
    HSPW= 40
  • LCDCON5(极性的初始化)
    上一篇文章中提到过,实际的HSYNC,VSYNC信号的有效电平是通过LCD的dataSheet来确定的,通过前文已经分析得出, HSYNC VSYNC两个信号都是低脉冲有效,所以要配置电平的反转

    FRM565:LCDCON1中配置了16Bpp的显示方式,此处配置了具体的显示格式RGB565
    大白话就是前面配置了16位表示一个像素,此处配置了这16位那几位代表红,绿,蓝
    INVVLINE: HSYNC信号需要极性需要反转(默认是高电平有效–>2440手册上记载)
    INVVFRAME: VSYNC信号需要极性需要反转(默认是高电平有效–>2440手册上记载)
    BSWP:配置大小端的,说明颜色在内存中的存储方式,这个手册上有说明,此处不一定配置正确,如果实验有问题可以修改此参数
    PWREN:由于在上面我们提到过,LCD的电源可以是内接,可以是外接,2440内部电路中, GPG4与LCD的LCD_PWREN是共用的引脚,首先让GPG4成为LCD_PWREN,

    然后让内部电源控制使能,即PWREN为1
    INVPWREN控制电源有效信号是否反转,这个试一下就可以
    最后我们打开LCD电源只需要
    1.LCDCON1中的ENVID位置1
    2.GPB0输出1打开背光电源
        LCDCON1 |= 1;         // ENVID ONGPBDAT |= (1<<0);           // Power on
  • 有人会问, 不是还需要打开LCD电源吗?其实在打开步骤1中,已经打开了LCD电源

    上面关于手册有说明,即使能了PWREN后,这个LCD_PWREN电源信号就与ENVID绑定了,ENVID使能后(高电平), 会自动拉高LCD_PWREN引脚(GPG4),即默认电源信号为高电平有效,但是可能实际LCD_PWREN引脚为电平电源开启,所以提供了INVPWREN控制电源控制信号是否反转
    对于LCDSADDR1->LCDSADDR3寄存器的配置,比较简单,代码容易看懂, 到此,寄存器重要的配置讲解完毕,裸机部分也告一段落了

深入理解LCD之寄存器配置相关推荐

  1. Lcd ILI9340寄存器初始化配置

    1.源码如下,初始化ILI9340 2.LCD_ILI9340.h //作者:金丝草extern Lcd_Write_Cmd(u8*,u32); extern Lcd_Write_Data(u8*,u ...

  2. ili9325--LCD寄存器配置研究

    2011-06-22 22:18:12 自己根据ili9325的规格书编写驱动.发现LCD屏没显示.于是怀疑是某些寄存器设置错误.要调试的话最好还是先熟悉寄存器的作用,调试的时候只要看到现象就能分析了 ...

  3. ov7725摄像头调试经验-寄存器配置

    之前调过一款摄像头,是MT9V034, 最近在调的是OV7725摄像头,感觉OV7725摄像头比MT9V034要难,特别是寄存器配置,要想玩转一款摄像头,必须要熟悉它的寄存器配置,而且要亲自去调试,然 ...

  4. 【i.MX6ULL】驱动开发3——GPIO寄存器配置原理

    前面的两篇Linux驱动文章,介绍了字符设备驱动的两种新旧开发方式,并使用一个虚拟的字符驱动来学习字符设备的开发的流程. 本篇起,就要来操作Linux开发板的硬件,首先当然是通过经典的点亮LED灯程序 ...

  5. OV7725寄存器配置

    OV7725寄存器配置(为了替换NT99141研究了很长一段时间) 部分参考链接: OV7725 电器特性和时序图:https://www.cnblogs.com/raymon-tec/p/50870 ...

  6. F28335 SCI模块功能单元及其寄存器配置————F28335学习笔记(八)

    1 SCI模块的功能单元 (1)1个发送器(TX)及相关寄存器. (2)1个接收器(RX)及相关寄存器. (3)一个可编程的波特率产生器. (4)数据存储器映射的控制和状态寄存器. SCI模块的所有寄 ...

  7. 28335 CAN 通讯寄存器配置标准步骤流程

    send函数寄存器配置 { struct ECAN_REGS ECan_Reg_Shadow;     //-------------------------     volatile struct ...

  8. 【驱动】GPIO寄存器配置总结

    #[驱动]GPIO寄存器配置总结 0.设置复用功能为GPIO 1.设置引脚特性,与硬件匹配 2.配置寄存器举例 字段解释: 2.0.SRE 数据位:0 SRE(Slew Rate Field):转换速 ...

  9. STM32 FSMC学习笔记+补充(LCD的FSMC配置)

    STM32 FSMC学习笔记+补充(LCD的FSMC配置) STM32 FSMC学习笔记 STM32 FSMC的用法--LCD 转载于:https://www.cnblogs.com/LittleTi ...

  10. 深入理解Linux软件包的配置、编译与安装

    深入理解Linux软件包的配置.编译与安装   发布时间:2007.09.24 06:23     来源:赛迪网    作者:kit 从源代码安装过软件的朋友一定对 ./configure & ...

最新文章

  1. 【译文】AppBarLayout的越界滚动行为
  2. ISA2006的部署
  3. ptyhon【递归练习】
  4. 函数式编程之-模式匹配(Pattern matching)
  5. 推荐几本编程启蒙书籍
  6. MyEclipse + Tomcat + Eclipse 开发调试WEB应用
  7. php 实现类似asp.net中的datagridview效果,asp.net中使用DatagridView的增删改方法具体实现...
  8. ulp java_java.lang.Math.ulp(float f)方法实例
  9. 《数字图像处理 冈萨雷斯》数字图像基础——学习笔记
  10. 【软件工程】根据数据流图导出程序结构
  11. Vue2-Vue3.0学习笔记(2021年黑马程序员最新视频)
  12. win10打开计算机黑屏怎么办,win10开机黑屏原因【解决方法】
  13. 2022华为机试真题 C++ 实现【勾股数元组】
  14. 成功解决pyinstaller打包时报错:lib not found的问题
  15. Vue项目安装XLSX成功后,生成项目报错:“export ‘default‘ (imported as ‘XLSX‘) was not found in ‘xlsx‘
  16. 祝所有高考学子高考加油!
  17. 大数据-什么是大数据?大数据的相关概念
  18. 介绍计算机专业说明文,介绍电脑的说明文作文
  19. 如何用matlab画紫罗兰,[转载]基于MATLAB的快速傅立叶分析程序设计
  20. unity游戏开发之令人上瘾的6大手游设计’潜规则’

热门文章

  1. 浙江师范大学c语言函数实验答案,C语言实验浙江师范大学8-2 D阵列+答案.doc
  2. 国内某厂商摄像头敏感信息泄露漏洞事件分析
  3. 【EagleEye】2020-ECCV-EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning-论文详解
  4. input输入密码的时候调用纯数字键盘和加密,js弹出键盘
  5. IP地址、网络号、主机号、网络地址、子网掩码、网关、192.168.0.1/24是什么意思
  6. mysql的msi文件下载
  7. 计算机加法的运算规则,计算机眼中的加法运算
  8. java图片变成黑白代码_转:Java对图片的处理---缩放图像、图像切割、图像类型转换、彩色转为黑白...
  9. 2 PC 有它,你就够了!
  10. 计算机网络技术ip地址计算,计算机网络原理-IP地址计算题.doc