STM32F429 LCD程序移植
STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音。有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动芯片做寄存器配置等等,一系列繁琐的操作。但是,如果MCU自带LCD驱动器,情况就不一样了,特别是加载了STemwin之后,不同厂家屏幕,只要其分辨率一样,则可以直接替换,最多是触摸屏的芯片不一样,做些触摸驱动。如果分辨率不同,则只需要更改分辨率就可以了,其硬件接口是一样的。
本文是从野火的5寸800*480分辨率屏幕程序移植到原子哥的apollo的7寸1024*600分辨率上,用429驱动这么高分辨率是件比较容易兴奋的事情,由于底层驱动方式不同,直接影响刷屏速度,野火的底层驱动写得还算是比较完善,就是在STemwin上没直接使用开放触摸屏接口。
首先,查看下野火的开发板上触摸屏引脚和APOLLO板区别,经过研究发现,其管脚基本通用,部分管脚重定义到别的引脚,软件上只需要做简单的条件编译即可,如下:
另外值得注意的事,通过比较LCD的管脚定义,很明显,APOLLO硬件上只保留了RGB565引脚,所以野火程序驱动上得从RGB888改为RGB565,其主要代码集中在文件GUIDRV_wf.c中,直接替换。
其次,看下两块板子之间SDRAM引脚区别,做过触摸屏显示的童鞋肯定知道,屏幕显示的缓存,是靠外部的SDRAM,如果SDRAM驱动不好,则触摸屏肯定没法使用。比较之后,因为都是SDRAM 不管是ISSI的还是Winbond的,其接口定义都是一模一样。唯一一点区别,之前用的野火的程序使用的是4M大小,而驱动1024*600分辨率,这个大小不够,得升级到8M,更改下代码,同时更改下管脚映射(跟LCD管脚方法一样,不赘述)。
行地址宽度改为9,列地址宽度改为13。
野火的SDRAM配置在bank2上,其起始地址为:0xD0000000,而APOLLO起始地址为:0xC0000000,程序上做出相应的更改;
另外,因为增大了SDRAM,在GUIConf.c文件中也做相应的堆栈更改
通过以上两个措施,屏幕基本可以显示,其效果如下,只显示一半。
网上该情况的资料比较少,也很难发现原因,原因可能有几个方面:SDRAM只用了现存的一半,导致另一半没刷出来;屏幕驱动有问题;
1) 通过对SDRAM全部8M数据,读取写入测试,无问题,说明不是SDRAM导致该问题发生;
2)屏幕显示方式不对,RGB565没有设置好,经过仔细盘查,RGB设置无问题;
3)屏幕的时序方式可能需要更改,将野火的时序方式换成APOLLO,申请的效果出现了,可以整面刷屏了。
自此,可以说移植成功了。
STM32F429 LCD程序移植的更多相关文章
- 嵌入式linux应用程序移植方法总结
嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...
- linux第三方程序移植
摘要:在linux开发过程中经常需要用到第三方的程序,有时需要用到它们的库,有时需要它们生成的可执行文件,如何正确地编译这些第三方的程序,以方便地使用和开发自己需要的程序,将是本文要论述的内容. 1. ...
- 【转】将 Linux 应用程序移植到 64 位系统上
原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软 ...
- AM335x(TQ335x)学习笔记——LCD驱动移植
TI的LCD控制器驱动是非常完善的,共通的地方已经由驱动封装好了,与按键一样,我们可以通过DTS配置完成LCD的显示.下面,我们来讨论下使用DTS方式配置内核完成LCD驱动的思路. (1)初步分析 由 ...
- STM32F407使用MFRC522射频卡调试及程序移植成功
版权声明:转载请注明出处,谢谢 https://blog.csdn.net/Kevin_8_Lee/article/details/88865556 或 https://www.cnblogs.co ...
- Linux64位程序移植
1 概述 Linux下的程序大多充当服务器的角色,在这种情况下,随着负载量和功能的增加,服务器所使用内存必然也随之增加,然而32位系统固有的4GB虚拟地址空间限制,在如今已是非常突出的问题了:另一个需 ...
- 017_STM32程序移植之_AS608指纹模块
STM32程序移植之AS608指纹模块 BUG说明: 硬件接线图如图所示 STM32引脚 指纹模块引脚 功能 3.3V 3.3V PA3 Tx PA2 Rx GND GND PA1 WAK 3.3V ...
- 016_STM32程序移植之_舵机
STM32程序移植之舵机PWM测试 接线图如下: STM32引脚 舵机引脚 功能 GND GND 正极电源 具体看舵机的额定电压 PA6 PWM引脚 STM32引脚 CH340引脚 GND GND 3 ...
- 015_STM32程序移植之_NRF24L01模块
STM32程序移植之NRF24L01模块 引脚接线图如下所示 STM32引脚 NRF24L01引脚 功能 GND GND 3.3V 3.3V PB8 CE PB9 CSN PB13 SCK PB15 ...
随机推荐
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- java 利用ManagementFactory获取jvm,os的一些信息--转
原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...
- Spark踩坑记——初试
[TOC] Spark简介 整体认识 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架.最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apach ...
- iOS7 NavigationController 手势问题
在iOS7中,如果使用了UINavigationController,那么系统自带的附加了一个从屏幕左边缘开始滑动可以实现pop的手势.但是,如果自定义了navigationItem的leftBarB ...
- JS中关于字符串的几个常用又容易忘记的方法
1>.字符串连接:concat(): 左边字符串. concat(连接的字符串1,字符串2,....); 获取指定位置的字符:charAt(): 返回指定位置的字符: 字符串.charAt(i ...
- 我的MYSQL学习心得(十六) 优化
我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 如何利用mono把.net windows service程序迁移到linux上
How to migrate a .NET Windows Service application to Linux using mono? 写在最前:之所以用要把windows程序迁移到Linux上 ...
- Team Leader 你不再只是编码, 来炖一锅石头汤吧
h3{ color: #000; padding: 5px; margin-bottom: 10px; font-weight: bolder; background-color: #ccc; } h ...
- iOS开发系列--网络开发
概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...
- git 行动指南
Git是一个分布式的版本管理工具. 在本地项目和服务器都会拥有版本库,本地版本库由自己控制,自由选择提交代码到服务器端 windows上也建议使用命令的方式来使用git,推荐使用客户端 :http:/ ...