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程序移植的更多相关文章

  1. 嵌入式linux应用程序移植方法总结

    嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...

  2. linux第三方程序移植

    摘要:在linux开发过程中经常需要用到第三方的程序,有时需要用到它们的库,有时需要它们生成的可执行文件,如何正确地编译这些第三方的程序,以方便地使用和开发自己需要的程序,将是本文要论述的内容. 1. ...

  3. 【转】将 Linux 应用程序移植到 64 位系统上

    原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软 ...

  4. AM335x(TQ335x)学习笔记——LCD驱动移植

    TI的LCD控制器驱动是非常完善的,共通的地方已经由驱动封装好了,与按键一样,我们可以通过DTS配置完成LCD的显示.下面,我们来讨论下使用DTS方式配置内核完成LCD驱动的思路. (1)初步分析 由 ...

  5. STM32F407使用MFRC522射频卡调试及程序移植成功

    版权声明:转载请注明出处,谢谢 https://blog.csdn.net/Kevin_8_Lee/article/details/88865556 或  https://www.cnblogs.co ...

  6. Linux64位程序移植

    1 概述 Linux下的程序大多充当服务器的角色,在这种情况下,随着负载量和功能的增加,服务器所使用内存必然也随之增加,然而32位系统固有的4GB虚拟地址空间限制,在如今已是非常突出的问题了:另一个需 ...

  7. 017_STM32程序移植之_AS608指纹模块

    STM32程序移植之AS608指纹模块 BUG说明: 硬件接线图如图所示 STM32引脚 指纹模块引脚 功能 3.3V 3.3V PA3 Tx PA2 Rx GND GND PA1 WAK 3.3V ...

  8. 016_STM32程序移植之_舵机

    STM32程序移植之舵机PWM测试 接线图如下: STM32引脚 舵机引脚 功能 GND GND 正极电源 具体看舵机的额定电压 PA6 PWM引脚 STM32引脚 CH340引脚 GND GND 3 ...

  9. 015_STM32程序移植之_NRF24L01模块

    STM32程序移植之NRF24L01模块 引脚接线图如下所示 STM32引脚 NRF24L01引脚 功能 GND GND 3.3V 3.3V PB8 CE PB9 CSN PB13 SCK PB15 ...

随机推荐

  1. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  2. java 利用ManagementFactory获取jvm,os的一些信息--转

    原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...

  3. Spark踩坑记——初试

    [TOC] Spark简介 整体认识 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架.最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apach ...

  4. iOS7 NavigationController 手势问题

    在iOS7中,如果使用了UINavigationController,那么系统自带的附加了一个从屏幕左边缘开始滑动可以实现pop的手势.但是,如果自定义了navigationItem的leftBarB ...

  5. JS中关于字符串的几个常用又容易忘记的方法

    1>.字符串连接:concat(): 左边字符串. concat(连接的字符串1,字符串2,....); 获取指定位置的字符:charAt(): 返回指定位置的字符:  字符串.charAt(i ...

  6. 我的MYSQL学习心得(十六) 优化

    我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  7. 如何利用mono把.net windows service程序迁移到linux上

    How to migrate a .NET Windows Service application to Linux using mono? 写在最前:之所以用要把windows程序迁移到Linux上 ...

  8. Team Leader 你不再只是编码, 来炖一锅石头汤吧

    h3{ color: #000; padding: 5px; margin-bottom: 10px; font-weight: bolder; background-color: #ccc; } h ...

  9. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  10. git 行动指南

    Git是一个分布式的版本管理工具. 在本地项目和服务器都会拥有版本库,本地版本库由自己控制,自由选择提交代码到服务器端 windows上也建议使用命令的方式来使用git,推荐使用客户端 :http:/ ...