声明:本文为原创作品,版权归本博文作者所有,如需转载,请注明出处http://www.cnblogs.com/kingst/
evbase 点击下载。
https://files.cnblogs.com/xiaomagee/EVBASE.7z
第一章 从这里开始
一 总则
本教程使用GuiDriver驱动器、EVTFT 系列模块作为载体。EVTFT模块包含EVTFT36、EVTFT43以及EVGA86三种模块,本章将简单介绍以上模块的硬件构架以及软件开发平台。最后会有个简单的演示范例。
二 GuiDriver简介
GuiDriver是专门为EVTFT 系列模块制作的驱动器。模块采用高速的32位处理器STM32F103VCT6,通过 FSMC 总线与EVTFT 接口连接。驱动器资源如下:
- 72MHz 高速32位 Cortex-M3 内核;
- 通过 FSMC 接口连接EVTFT 接口;
- 板载2M字节串行Flash,可以存字库、图片等;
- 板载5.0V转3.3V输出LDO,可以为EVTFT模块供电;
- 板载六只按键;
- 板载LED,可以作为指示用;
- 板载USB 接口,可以高速传输数据,并可以作为供电输入;
- UART 接口引出(TTL 接口);
- SW 调试接口,可以与J-Link、U-Link2等仿真器连接下载与调试。
各个功能模块的接口电路如图1-1所示。
图1-2为USB接口电路,USB协议规定,在USB D+或者D-上加上一个1.5k的上拉电阻,用于区别高速、低速设备。图1-3为常用的AMS1117 LDO电路,具有800mA峰值输出能力。
图1-4为EVTFT / EVGA 接口电路,此接口为2.54mm间距双排插针,共24针。接口包括模块供电(3.3V)、模块地(DCOM)、16位数据线(DB[15:0])、2位地址线(A16、A17)、写使能(WR)、读使能(RD)、片选(CS)以及液晶背光控制引脚(PWM)。
图1-5为SPI Flash接口电路,使用ST公司的M25P16,总共包含片选(FCS)、主入从出(FMISO)、主出从入(FMOSI)、时钟(FSCK)四根线。图1-6为按键电路,包含6个独立按键。连接于处理器的PC0~PC5端口上。
三 EVTFT36 / EVTFT43液晶模块
EVTFT36 / EVTFT43是两款优秀的高分辨率显示模块。广泛用于嵌入式仪器仪表、工业现场智能家居等领域。有使用简单,速度快,显示效果好等诸多优点。模块特征如下:
- 16:9宽屏, 480×272分辨率;
- 65536 颜色显示,色彩逼真;
- 内建驱动器,16位8080高速接口;
- 高亮白光 LED 背光,亮度PWM 可调;
- X、Y光标自增,方便高速读写;
- 可方便与51/DSP/ARM/FPGA连接;
- 双页帧缓冲,适合较慢的cpu或者视频显示;
- 多种连接接口(插针或者PFC软线);
- μcGUI / ZLGGUI等诸多软件库支持。
四 EVGA86模块
EVGA86 是一款通用VGA显示驱动器。模块具有速度高、功耗低、易使用等优点,能连接市面上带VGA 接口的显示器。可广泛用于工业终端、医疗电子、仪器仪表等领域。是廉价、高性能的VGA 驱动方案。模块特征如下:
- 高达 800x600的分辨率;
- 65536 颜色显示,色彩逼真;
- X、Y光标自增,方便高速写入;
- 可方便与51/DSP/ARM/FPGA连接;
- 多种连接接口(插针或者PFC软线);
- μcGUI / ZLGGUI等诸多软件库支持。
五 KEIL MDK-ARM 开发平台
Keil (An ARM Company) 公司开发的ARM开发工具MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,能帮助工程师按照计划完成项目。
本教程的软件是基于KEIL MDK-ARM 4.12版本,调试器使用J-Link V8。
首先,从网上下载 EVTFT 驱动包;名字叫做 EVBASE.7z,是个压缩包 。利用开源的 7-ZIP 软件,把它解压到硬盘上(注意,不能有汉字路径,这些软件都歧视中文,切忌)。例如我们把它解压到E盘 EVSOFT 目录里。从网上下载 KEIL MDK 4.12或者更高版本,安装后,打开集成开发环境 Keil uVision4。通过点击Project菜单下的 New uVisiton Project开始建立新工程。如图 1-9所示。
之后会出现 Create New Project窗口,我们选择路径为刚才解压的路径,即 E 盘EVSOFT 目录里的 EVBASE,在文件名内我们写上我们即将建立的工程名,这里取名字 Minimal,即最小系统的意思。如图1-10所示。
点击保存,把项目名称保存到硬盘上,然后IDE会弹出CPU 选择窗口,这里我们选择 STMicroelectronics 公司的 STM32F103VC。右侧的窗口中,会有这个cpu的简单资源介绍。如图 1-11 所示。
按下 OK 后,会弹出一个对话框,如图 1-12所示。
这个对话框的含义为询问是否拷贝启动代码到当前文件夹,我们选择“是”。
然后会有一个空工程(只包含启动代码)摆在我们面前;下一步就是建立工程文件夹,用于添加我们的代码,我们在 Project 文件管理栏里,右键点击Target 1,然后选择 Add Group ,如图1-13所示。
然后键入 main,表示添加 main 代码群。我喜欢这个分类跟硬盘上的代码文件夹一一对应,并且按功能分类,当然您如果不习惯这样,也是可以的。我们一次用同样的方法,添加 Driver,Config等,添加后,如图1-14所示。
然后我们就把硬盘上的源代码,逐个添加到对应的程序群组中区,方法为鼠标点击到每个群组上,然后按右键,选择 Add File to Group…,添加后的效果如图 1-15所示。这里值得注意的是,Include目录为头文件,可以添加也可以不添加。这个编译的时候会调用的,不需要自己添加,但是有时候为了寻找、修改方便,也可以加进去。不影响使用。
编译器编译原文件后,会产生很多编译垃圾,如 *.o什么的,我习惯把他们统一放到一个文件夹,这样便于管理,我一般是在项目文件夹内建立 OBJ 文件夹,然后把编译垃圾放进去。
我们选择 Project,然后选择 Options for Target ‘Target1‘,来进行项目属性管理,这个属性很有用,很多方面都用它,大家要记牢。我们把 output 和 listing 选项里的 Selects Folder …. 都指向项目里的 OBJ 文件夹,这样编译垃圾,都进这里去了。
我们的程序里面,有一些需要 c99语法的支持,说简单点也就是 1999年发表的一个 c语言标准;感兴趣的同学可以研究研究,这里就不多说了。我们可以再工程属性上面,添加对 C99 的支持,方法如下:打开工程属性,进入 C/C++ 选项,在 misc controls 里添加 --c99 关键字,即可。如图 1-17所示。
点击“ok“,让设置生效;这样我们的工程就建立完毕了,可以通过编译菜单,来编译一下程序,如果以上步骤没有错误,会有成功提示。
编译成功后,我们会在下面的 build output 窗口,得到编译的信息,如图1-19所示。
Build Output窗口会显示目标代码的一些信息,例如代码大小,占用ram空间大小等。图1-19说明的目标文件为 minimal.axf,在obj文件夹内。
编译好了后,我们怎么才能把程序下载到处理器中呢,这里需要用到J-LINK 调试器。我们从 http://www.segger.com/cms/jlink-software.html 这个网址下载J-LINK 是软件,并安装后,简单设置一下,就可以用 JLINK 下载、调试了。进入工程选项窗口,我们进入 Debug 然后点击 Settings ,进入到Jlink画面,这时如果您的Jlink连接电脑和板子上,Jlink就可以轻而易举的探测到处理器。
Build Output窗口会显示目标代码的一些信息,例如代码大小,占用ram空间大小等。图1-19说明的目标文件为 minimal.axf,在obj文件夹内。
编译好了后,我们怎么才能把程序下载到处理器中呢,这里需要用到J-LINK 调试器。我们从 http://www.segger.com/cms/jlink-software.html 这个网址下载J-LINK 是软件,并安装后,简单设置一下,就可以用 JLINK 下载、调试了。进入工程选项窗口,我们进入 Debug选项,选择成 Cortex-M/R J-LINK / J-Trace,如图 1-20所示。
然后点击 Settings ,进入到Jlink画面,这时如果您的Jlink连接电脑和板子上,Jlink就可以轻而易举的探测到处理器。
GuiDriver 为了方便,选择了 sw 端口调试;方便快捷,速度一点不差;不过这里我们要手动设置 Port 为 SW,其它不用动,点击 OK 即可。然后选到 Utilities选项,这里设置下载项,我们同样选择 J-link,如图1-22所示,选择后,点击 Settings,进入更具体的设置。
进入后,我们选择 Add,添加Flash选项,选择如图 1-23所示的选项。然后点击 Add 按钮。然后我们需要把 Reset and run选项勾上,意思是烧完程序后,让它自动运行。如图 1-24。然后就一路 OK,选择后,我们就可以通过菜单或者下载图标,完成程序的下载。
本例程如果正常下载,会在屏幕上现则彩条(如果 EVGA86,需要修改相应的分辨率)。如图 1-25所示。具体的代码,大家可以参看 main程序。