STM32学习之路-LCD(2)
版权声明:本文为博主原创文章。未经博主同意不得转载。
https://blog.csdn.net/u011791262/article/details/27711881
这些天一直在研究LCD的初始化函数,由于只是是用IO口模拟时序还是用FSMC来驱动LCD,都必需要弄好LCD的初始化
事实上LCD的初始化就是跟着LCD IC的datasheet来写寄存器,大部分都使用上面的默认值,网上有非常多改动的样例,这里就不
放出来了.可是我想写下一些比較重要的东西。
这是从网上下载来的一个文件的前半部分:
当然,别的型号的IC也是有这些东西的。只是可能有些地址不同而已.
R0。这个命令有两个功能,假设对它写,则最低位为OSC,用于开启和关闭振荡器。
而假设对它读操作,
则返回的是控制器的型号。
这个命令最大的功能是通过读它能够得到控制器的型号。而我们的代码知道了控制器的型号之后,
能够针对不同型号的控制器,进行不同的初始化。由于93xx系列的初始化,事实上都比較相似。我们全然能够用一个代码兼容好几个控制器。
R3。入口模式命令。我们重点关注的是I/D0、I/D1、AM这三个位,由于这三个位控制了屏幕的显示方向。
AM:控制GRAM更新方向。当AM=0的时候。地址以行方向更新。当AM=1的时候,地址以列方向更新。
I/D[1:0]:当更新一个数据之后。依据这两个位的设置来控制地址计数器自己主动添加/降低1。其关系例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTc5MTI2Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
通过这几个位置的设置,我们就能够控制屏幕的显示方向了。
另一点就是关于是否要硬件复位这里, 这里要看芯片的datasheet。看Bus Interface这里是否要求硬件复位
R61509就明白要求了这一点:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTc5MTI2Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
所以在初始化函数开头是要加上复位的代码的
GPIO_ResetBits(GPIOE, GPIO_Pin_1); //硬件复位
Delay(0x1AFFf);
GPIO_SetBits(GPIOE, GPIO_Pin_1 );
Delay(0x1AFFf);
另一点就是关于伽马校准寄存器的配置,实在是看不懂为要这样设置这些參数
LCD_WR_CMD(0x0300, 0x00C00);//gamma
LCD_WR_CMD(0x0301, 0x05A0B);
LCD_WR_CMD(0x0302, 0x00906);
LCD_WR_CMD(0x0303, 0x01017);
LCD_WR_CMD(0x0304, 0x02300);
LCD_WR_CMD(0x0305, 0x01700);
LCD_WR_CMD(0x0306, 0x06309);
LCD_WR_CMD(0x0307, 0x00C09);
LCD_WR_CMD(0x0308, 0x0100C);
LCD_WR_CMD(0x0309, 0x02232);
并且不同的IC芯片的伽马校正设置參数也不一样.. 也许看到这篇文章的大虾又刚好知道这里是怎么回事的话,那就请拉小弟一把,解释下什么原因
剩下的还有就是其它一下显示图片,字符的函数什么的了, 下次再写下来,由于还没研究多少呢.
STM32学习之路-LCD(2)的更多相关文章
- STM32学习之路-LCD(4)<显示字符>
昨晚疯狂的打了一夜的LOL,感觉L多了,今天一天精神萎靡.还是继续把显示字符给看了,可是在犹豫要不要写这篇文章 事实上写的东西也就是copy别人家的代码,不想写那么多,就记录下自己困惑的地方吧.也许改 ...
- STM32学习之路-LCD(3)<显示图片>
祝大家端午和六一快乐!原本今天是想歇息歇息的,可是实在无奈没什么事干.所以就来学习学习LCD显示图片的函数 函数是照搬奋斗的样例,算是些笔记吧.只是奋斗的样例凝视的不是非常具体.今天去看了正点原子的论 ...
- STM32学习之路入门篇之指令集及cortex——m3的存储系统
STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码 操作数1, 操作数2,... ...
- (stm32学习总结)—LCD—液晶显示
显示器简介 显示器属于计算机的 I/O 设备,即输入输出设备.它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具.常见的有 CRT 显示器.液晶显示器.LED 点阵显示器及OLED 显示器 本章 ...
- STM32学习之路之入门篇
2006年ARM公司推出了基于ARMV7架构的cortex系列的标准体系结构,以满足各种技术得不同性能要求,包含了A,R,M三个分工明确的系列 其中A系列面向复杂的尖端应用程序,用于运行开放式的复杂操 ...
- STM32学习之路-感觉自己走到了一个天大的坑里了!
先前兴致勃勃的来弄16位并口驱动LCD.本以为就须要改下LCD IC的初始化即可了,没想到弄了这么多天最终发现自己走进了一个深坑了 T T 原因是我的开发板是奋斗V5的, 它确实有MCU外扩IO口, ...
- STM32学习之路-SysTick的应用(时间延迟)
开发板:奋斗V5 好~ 菜B要来搞实验了.. 前面已经说了SysTick的工作原理什么的了,这里就不说了.. 先来做第一个实验: 盗自奋斗的样例,嘿嘿, 用SysTick产生1ms的基准时间,产生中断 ...
- STM32学习之路之MDK安装篇
- Qt 学习之路 2(71):线程简介
Qt 学习之路 2(71):线程简介 豆子 2013年11月18日 Qt 学习之路 2 30条评论 前面我们讨论了有关进程以及进程间通讯的相关问题,现在我们开始讨论线程.事实上,现代的程序中,使用线程 ...
随机推荐
- git 使用 VisualStudio 比较分支更改
有时候需要比较两个分支的不同,这时如果提交到 github ,那么默认就可以看到.但是这时因为没有ide的高亮或者其他的功能,看起来觉得不好 默认的 VisualStudio 比较文件比 github ...
- c#FTP应用---windows iis
一.什么是FTP FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件. 二.搭建前期准备 1.首先打开控制面板找到“程序”点击打 ...
- SSH:Hibernate框架(七种关联关系映射及配置详解)
概念 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用. 分类 关联关系分为上述七种,但是由于相互之间有各种关系, ...
- Spring MVC 不能正常获取参数的值
最近在开发时遇到一个非常奇怪的问题,在tomcat8中使用Spring MVC框架,在Controller中的方法参数无法正常获取到相应的值,将tomcat版本换成7.0就解决了. 记录以下解决过程, ...
- 使用Spring的AbstractRoutingDataSource类来进行拓展多数据源
1.继承抽象类AbstractRoutingDataSource 通过重写这个抽象类的determineCurrentLookupKey()方法来决定返回哪个数据库. 2.配置多个数据库 <be ...
- MapReduce运行原理和过程
原文 一.Map的原理和运行流程 Map的输入数据源是多种多样的,我们使用hdfs作为数据源.文件在hdfs上是以block(块,Hdfs上的存储单元)为单位进行存储的. 1.分片 我们将这一个个bl ...
- 01-Javascript简介(了解)
[转]01-Javascript简介(了解) Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用 ...
- Python 多线程、多进程 (一)之 源码执行流程、GIL
Python 多线程.多进程 (一)之 源码执行流程.GIL Python 多线程.多进程 (二)之 多线程.同步.通信 Python 多线程.多进程 (三)之 线程进程对比.多线程 一.python ...
- apicloud 自定义模块的开发与上架注意事项
模块开发要点与返回刷新页面注意事项 1.介绍 apicloud 除了使用官方提供的模块外,我们可以自定义一些模块供自己使用和上传到官方出售.针对没有提供或者价格过贵的模块,如果有时间自己可以进行研究. ...
- Cobalt Strike 学习
前言 本文以一个模拟的域环境为例对 Cobalt Strike 的使用实践一波. 环境拓扑图如下: 攻击者(kali) 位于 192.168.245.0/24 网段,域环境位于 192.168.31. ...