




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0基于STM32的数码相框设计与实现摘要嵌入式系统是当前最有发展前途的IT应用领域之一,近年来数字摄影业的兴起带动了嵌入式产品数码相框的发展。本基于ARMCortex-M3内核的STM32嵌入式硬件平台的数码相框,主要优势是应用了Stm32杰出的功耗控制和极低的开发成本、超多的外设等特点。设计主要本设计是一款基于包括主控制器核心板、LCD液晶显示、SD卡存储器等多个功能模块。开发过程大致为:在PC机win7系统中使用RVMDK3.80版本的编译器撰写工程代码,之后通过mcuisp串口下载软件将编译器编译生成.hex下载到开发板内,最终实现实现了对SD卡里多幅图片以幻灯片形式在TFT屏上动态显示的效果。关键词:数码相框;STM32;LCD液晶显示;SD卡1ThedesignofdigitalphotoframesbasedontheSTM32AbstractEmbeddedsystemsisoneofthemostpromisingapplicationsofITinrecentyears,drivenbytheriseofdigitalphotographyembeddedproducts-digitalphotoframedevelopment.ThedesignisbasedonaSTM32ARMCortex-M3coreembeddedhardwareplatformdesigndigitalphotoframe,bothoftodaysdigitalphotoframeindustry,marketdemandandStm32excellentpowercontrolandlowdevelopmentcosts.Coredesignincludesthemaincontrollerboard,LCDliquidcrystaldisplay,anumberoffunctionalmodulesSDcardmemory.Developmentprocessisroughly:UseRVMDK3.80versionofthecompilerwritingprojectcodeinthePCwin7system,afterpassingthroughmcuispserialdownloadsoftwarecompilertogeneratehexdownloadedtothedevelopmentboard,andultimatelythesystembyreadingtheFATfilesystem.withintheSDcardstorageBMP,JPEG,JPGformatimages,thepiecesofthepictureintheformofaslidefromtheTFTscreenisdisplayed.Keywords:DigitalPhotoFrame;STM32;LCDliquidcrystaldisplay;SDcardmemory.目录摘要.1ABSTRACT.2目录.1第一章绪论.11.1数码相框的技术背景.11.2数码相框的市场背景.11.3本课题主要研究内容与特点.11.3.1本课题的主要研究内容.11.3.2本设计的主要特点.1第二章硬件介绍.32.1MCU主控模块.32.2LCD模块.42.3SD存储卡模块.7第三章软件介绍.103.1安装MDK3.8A.103.2注册LICENSE.103.3新建工程.123.4MCUISP与SSCOM软件.18第四章程序设计.204.1整体描述.204.2各模块描述.204.2.1SD卡图片文件读取.204.2.2图像解码与显示.214.3主程序设计.284.3程序调试.31第五章结束语.33参考文献(REFERENCES).34致谢.35外文文献.36外文译文.450第一章引言1.11数码相框的技术背景嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCDDVDMP3播放器、数码相机、数字摄像机、U-Disk、机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式产品。数字摄影的兴起不可避免地引起了数码相框的发展,因为仅有不到35%的数码照片被打印出来。数码相框的基本原理就是采用普通相框的造型,把原来相框中间的照片部分换成液晶显示屏,配上电源,存储介质等,使得同一个相框内可以循环播放照片,比普通照片的单一显示功能更有优势。此外,本设计属于数字影音娱乐产品,需要较为强劲的处理器进行图像解码的工作,而STM32具有超低的价格、超多的外设、丰富的型号、优异的实时性能、杰出的功耗控制和极低的开发成本等特点。因此,进行基于STM32平台的数码相框系统的设计具有重要的理论意义和实用价值。1.2数码相框的市场背景市从2007年开始,数码相框的市场关注度开始激增。在2008年,数码相框市场呈现高速发展的态势,本课题的研究具有极高的潜在市场价值与意义。1.2.1数码相框的发展现状数码相框产品是2001年开始出现的,但由于当时消费者的接受度及价格过高的因素,使这一市场一直到2003年都很低迷。随着主要器件价格的下降,数码相框的价格也逐步下降,市场在2004年开始有了起色,尤其在2005年,数码相框产品开始在欧美热销,但出货量也只有150万台左右,到了2006年的出货量同比上涨133,为280万台,2007年的出货量同比上涨185,为800万台,预计到2011年出货量将达到4000万台。从屏幕尺寸来看,2006年5-6.9英寸产品占主流,2007年7、8、9英寸产品成为最大市场。预计2011年,7、8、9英寸产品的供货比例将持续保持首位,而平均销售单价将以每年16.5左右的速度降低。2006年以前,中国生产的数码相框绝大多数出口国外。2005年底Philips率先将数码相框在中国推广,在礼品市场上取得了一些成绩,但由于销售价格较高,约为2050元/台,这一年中国数码相框的销售量仅有1.7万台。2006年下半年,开始有更多的国内厂商在中国市场推出数码相框,因而也带动了此产品价格的下降,这一年的平均售价为1150元/台,仍然较高,市场也以商务礼品为主,但由于2005年销售量的基数较低,2006年的销售量同比增长了470.6,达到9.7万台。直到2007年下半年,业界才感到这个一直处于培育期的市场,开始了真正的起飞。这得益于对数码相框产品认知度的提高、价格的下滑和需求量的提高。从IT厂商来看,仅2007年下半年以来,就有惠普、三星、优派、AOC、明基、柯达、长城等众多新军加入数码相框阵营。其中,巨头惠普2007年7月底在美国1宣布进入数码相框市场,2007年数码相框出货量设定为50万台。除新军外,数码相框老牌劲旅的出货量表现也令业界振奋,如飞利浦2006年数码相框出货量达到50万台,而2007年上半年出货量已达去年总和,2007年全年出货量达150万台。而从上游面板厂商的动作来看,也显示出乐观的发展态势。中华映管、群创等厂商均显著调高了配套数码相框产品的中尺寸面板的出货量目标,2007年出货量达1000万台,预计2008年更将倍增至2000万台。其中,中华映管目前已调配一座4.5代面板厂来支持生产中尺寸面板,主要生产可携式DVD播放机面板与数码相框面板,其数码相框面板以7英寸、8英寸、10.2英寸为主要尺寸,数码相框面板占其中尺寸面板的比重提高到40。21.2.2数码相框的发展趋势从长远来看,2008年及今后几年将为处在数码相框产品供应链的各企业带来巨大的商机。未来几年,数码相框的市场将处在逐渐走向成熟期的阶段,其产销量和市场需求依然将保持大幅度的增长,在未来的三年内,市场尚无萎缩的可能。从技术上来说,未来数码相框的发展将向两极分化。一部分产品着重强调基本功能和低成本,整合家庭中的闹钟、日历和装饰功能,这些产品走的是低成本路线,以展示照片为主,追求图像的品质及幻灯片播放特效,已成为DC/DV的附属物;另一部分产品将会添加一些新的功能,如WiFi,还可即时报告天气、股票等信息,从而有望成为“桌面信息中心”。此外,触摸面板会成为一个应用的新亮点。从产品形态上来说,数码相框的市场将会有非常明确的细分。1数码相框:这将是以数字照片的重显为主要功能的产品,其功能更接近于传统意义上的相框。由于人机界面的限制,为了更方便的重显和浏览以及确定重显的规则,这类产品并不强调有大容量的内存以及丰富的存储卡接口,这类产品的主要特征是:1)支持USBDevice&Host以便于更新和同步数据。2)在某些情况下(如从PC端通过相框的USBDevice同步数据),允许修改数字照片的格式使得有最佳的重显效果。3)仅依靠内置的半导体存储器存放需要重显的数字照片。4)文件(照片)查询和播放规则设定非常简洁易用。5)产品大致分为桌面和壁挂两种。2数码相册:这是以数字照片的存储和浏览为主要功能的产品,由于需要满足跟PC相类似功能,所以这类产品的主要特征是:1)有大容量的内置数据存储器。2)支持USBDevice&Host及各种存储卡接口,并支持内部存储器与各种数据存储器之间的同步以及相互拷贝。3)强大的文件管理功能:浏览,搜寻,命名(重命名),复制,删除,备份等。34)带或不带内建显示单元,有能支持其它高分辨率显示设备的接口(如色差,VGA甚至是HDMI)。1.3本课题设计主要研究内容与特点1.3.1本课题的主要研究内容本课题是基于ARM单片机STM32F103RBT6的存储程序控制,从SD卡读取图片,解码后输出到TFT-LCD上显示,同时通过按键可以切换到时间模式。1)硬件资料的研究;2)软件方案的选择与论证;3)软件运行与调试;1.3.2本设计的主要特点但数码相框产品市场化的两大阻碍因素为:一是价格;二是应用功能。低廉的价格将赢得更多顾客的青睐,而根据中国消费者的需求和特点,开发出相应的应用产品。STM32具有超低的价格、超多的外设、丰富的型号、优异的实时性能、杰出的功耗控制和极低的开发成本等超低的价格:以8位机的价格,得到32位机,是STM32最大的优势。极低的开发成本:STM32的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持SWD和JTAG两种调试口。SWD调试可以为您的设计带来跟多的方便,只需要2个IO口,即可实现仿真调试。超多的外设:STM32拥有包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等众多外设及功能,具有极高的集成度。丰富的型号:STM32拥有F101、F102、F103、F105、F107等5个系列数十种型号,具有QFN、LQFP、BGA等封装可供选择。优异的实时性能:84个中断,16级可编程优先级,并且所有的引脚都可以作为中断输入。杰出的功耗控制:STM32各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗。4第二章硬件介绍52.1嵌入式系统概况2.1.1嵌入式系统的定义虽然嵌入式系统是近几年才风靡起来的,但其历史可追溯到20世纪70年代。经过30多年的发展,在硬件和软件交替发展的支撑下,嵌入式技术逐渐趋于稳定和成熟,已被广泛应用于工业控制、交通管理、信息家电、家庭智能管理系统、POS网络及电子商务、环境检测、机器人等各个领域。毫不夸张的说,嵌入式系统已经无所不在,所以研究和开发嵌入式系统有着十分重要的意义。根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或辅助设备、机器和车间运行的装置”,这主要是从应用上加以定义的。不过,上述定义并不能充分体现出嵌入式系统的精髓。目前,国内一个普遍被认同的定义是:以应用为中心、以计算机为基础,软、硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。广义地讲,凡是不用于通用目的的可编程计算机设备,就可以算是嵌入式计算机系统。狭义上而言,嵌入式系统是指以应用为核心,以计算机技术为基础,软硬件可裁剪,适于应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。总的来说,嵌入式系统是一个外延极广的概念,凡是与产品结合在一起的、具有嵌入式系统特点的系统都可以称为嵌入式系统。可以从以下几个方面来理解嵌入式系统的含义:嵌入式系统是面向用户、面向产品、面向应用的,必须与具体应用相结合才会具有生命力。正因为与具体应用的紧密结合,嵌入式系统才具有很强的专用性。嵌入式系统将先进的半导体技术、计算机技术和电子技术,以及各个行业的具体应用相结合,是一个技术密集、资金密集、学科交叉和不断创新的知识集成系统。嵌入式系统必须根据应用需要对硬件和软件进行裁剪,以满足应用系统对功能、可靠性、成本、体积和功耗的要求。2.1.2嵌入式系统的组成6通常来说,嵌入式系统可以划分成硬件和软件两部分。嵌入式硬件由嵌入式微处理器、片内周边电路和外部设备三部分组成。嵌入式微处理器是嵌入式硬件系统的核心,直接影响嵌入式产品的应用范围和开发复杂度。典型的嵌入式微处理器有Motorola公司的PowerPC系列、Intel公司的StrongArm系列、AMD公司的X86系列以及EPSON公司的SIC33系列等。嵌入式软件一般由连接硬件和应用程序的嵌入式实时操作系统(Real-timeoperatingSystem,简称RTOS)和在其上运行的应用软件构成。嵌入式处理器嵌入式处理器是嵌入式系统的核心部件,是控制、辅助系统运行的硬件单元,其功能和性能影响着整个系统的功能、性能和设计。嵌入式处理器的选择也制约着其配套的外围器件及操作系统的选择。嵌入式处理器的种类繁多、数量庞大。目前世界上嵌入式处理器的种类数量已经超过1000种,流行的体系结构有30多个系列。嵌入式微处理器具有体积小、重量轻、成本低、可靠性高等优点,因此得到了广泛应用。目前这样的嵌入式处理器类型有ARM、MIPS、MC6800、386EX、PowerPC等系列,其中以ARM的应用最为广泛。嵌入式处理器可以分为四类,即嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU),如ARM嵌入式微控制器(MicrocontrollerUnit,MCU)嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)嵌入式片上系统(SystemOnChip)嵌入式外围设备这里所说的嵌入式外围设备,指在一个嵌入式硬件系统中,除了中心控制部件(MCU,DSP,EMPU,SOC)以外的完成存储、通信、保护、调试、显示等辅助功能的其他部件。根据外围设备的功能可分为以下三类,即:存储器类型:静态易失型存储器(RAM,SRAM)、动态存储器(DRAM)、非易失型存储器(ROM,EPROM,EEPROM,FLASH)。其中,因为FLASH可以擦写多次,存储速度快,容量大,价格便宜在嵌入式领域应用广泛。7接口类型:目前存在的所有接口在嵌入式领域都应用广泛,如RS-232(串口)、IRDA(红外线接口)、SPI(串行外围设备接口)、I2C(现场总线接口)、USB(通用串行接口)、Ethernet(以太接口)和普通并口。显示类型:CRT,LCD和触摸屏等外围设备。2.1.3嵌入式系统的特点嵌入式系统具有以下几个重要特征:系统内核小,由于嵌入式系统一般应用于小型电子装置,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如,ENEA公司的OSE分布式系统,内核只有5KB,而Windows的内核则要大得多。专用性强,嵌入式系统的个性化很强,其中的软件系统和硬件结合非常紧密,一般要针对硬件进行系统的移植,同时针对不同的任务,往往需要对系统进行较大的更改。另外,程序的编译下载要和系统相结合。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能的设计及实现过于复杂,这样既利于控制系统成本,也利于实现系统安全。高实时性的操作系统软件是嵌入式软件的基本要求,而且软件要求固化存储,以提高速度,软件代码要求高质量和高可靠性。嵌入式软件开发要想走向标准化,就必须使用多任务操作系统。嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行,但为了更合理的调度多任务,利用系统资源、系统函数,用户必须自行选配RTOS开发平台。执行的实时性、可靠性,并减少开发时间,保障软件质量。嵌入式系统开发需要专门的开发工具和环境。由于嵌入式系统本身不具备自主开发能力,即使完成设计后,用户通常也不能对其中的程序功能进行修改,因此必须有一套基于通用计算机的开发工具和环境才能进行开发。2.2数码相框模块2.2.1MCU主控模块STM32系列闪存微控制器是意法半导体公司(ST)基于ARM公司具有突破性的Cortex-M3内核的处理器,该处理器是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。此次设计采用的具体型号是STM32F103RBT6,如图2-1所示。8图2-1STM32F103RBT6处理器STM32F103RBT6嵌入式处理器具有以下特点:32位RISC性能处理器;32位ARMCortex-M3结构优化;72MHZ运行频率,单周期访问时速度可达1.25DMIPS/MHz;硬件除法和单周期乘法;快速可嵌套中断,612个时钟周期;具有MPU保护设定访问规则;片内具有256KBFLASH,48KBRAM;80个快速I/O端口,16个I/O可映射到外部中断,几乎所有的I/O可以忍受5V电压;片上集成12BitA/D、D/A、PWM、CAN、USB、SDIO、FSMC等资源;ARMCortex-M3是一种基于ARM7v架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。除了使用哈佛结构,Cortex-M3还具有其它显著的优点:具有更小的基础内核,价格更低,速度更快。与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。Cortex-M3还集成了睡眠模式和可选的完整的八区域存储器保护单元,只支持最新的Thumb-2指令集,最大限度降低了汇编器使用率。Cortex-M3这样设计的优势在于:免去Thumb和ARM代码的互相切换,对于早期的处理器来说,这种状态切换会降低性能。Thumb-2指令集的设计是专门面向C语言的,且包括If/Then结构(预测接下来的四条语句的条件执行)、硬件除法以及本地位域操作。Thumb-2指令集允许用户在C代码层面维护和修改应用程序,C代码部分非常易于重用。Thumb-2指令集也包含了调用汇编代码的功能:Luminary公司认为没有必要使用任何汇编语言。综合以上这些优势,新产品的开发将更易于实现,上市时间也大为缩短。9STM32F103RBT6的资源完全满足此次的嵌入式数码相框设计,通过设计电路开发一个支持TFT彩色液晶屏的驱动电路,在设计中搭配2.8寸TFT真彩触摸屏模块作为显示界面,同时支持一个SD卡(SPI方式)可用于存储图片、数据等。2.2.2LCD模块ThinFilmTransistor(薄膜场效应晶体管),是指液晶显示器上的每一液晶象素点都是由集成在其后的薄膜晶体管来驱动。从而可以做到高速度、高亮度、高对比度显示屏幕信息,TFT-LCD(薄膜晶体管液晶显示器)是多数液晶显示器的一种。TFT屏幕的优点如下:大面积。九十年代初第一代大面积玻璃基板(300mm400mm)TFT-LCD生产线投产,到2000年上半年玻璃基板的面积已经扩大到了680mm880mm),最近950mm1200mm的玻璃基板也将投入运行。高集成度。用于液晶投影的1.3英寸TFT芯片的分辨率为XGA含有百万个象素。分辨率为SXGA(12801024)的16.1英寸的TFT阵列非晶体硅的膜厚只有50nm,以及TABONGLASS和SYSTEMONGLASS技术,其IC的集成度,对设备和供应技术的要求,技术难度都超过传统的LSI。功能强大。TFT最早作为矩阵选址电路改善了液晶的光阀特性。对于高分辨率显示器,通过0-6V范围的电压调节(其典型值0.2到4V),实现了对象元的精确控制,从而使LCD实现高质量的高分辨率显示成为可能。TFT-LCD是人类历史上第一种在显示质量上超过CRT的平板显示器。现在人们开始把驱动IC集成到玻璃基板上,整个TFT的功能将更强大,这是传统的大规模半导体集成电路所无法比拟的。低成本。玻璃基板和塑料基板从根本上解决了大规模半导体集成电路的成本问题,为大规模半导体集成电路的应用开拓了广阔的应用空间。工艺灵活。除了采用溅射、CVD(化学气相沉积)MCVD(分子化学气相沉积)等传统工艺成膜以外,激光退火技术也开始应用,既可以制作非晶膜、多晶膜,也可以制造单晶膜。不仅可以制作硅膜,也可以制作其他的-族和-族半导体薄膜。应用领域广泛。以TFT技术为基础的液晶平板显示器是信息社会的支柱产业,技术可应用到正在迅速成长中的薄膜晶体管有机电致发光(TFT-OLED)平板显示器也在迅速的成长中。TFT液晶显示屏亮度好、对比度高、层次感强、颜色鲜艳,其广泛应用于手机、MP4等消费品。因此,本系统选用2.8英寸TFT-LCD屏(如图2-2所示)可显26万色,分辨率320*240,控制器为ILI9320,采用16位的80并口,配合触摸屏专用芯片XPT2046,可对屏幕进行触摸操作,更显智能化和个性化。为了方便用户使用,我们存储方式采用兼容FAT的文件系统,同时该文件系统也兼容FAT32等电脑主流的文件系统方式进行存储。10图2-22.8英寸TFT-LCD模块该模块的80并口有如下一些信号线:CS:TFT-LCD片选信号。WR:向TFT-LCD写入数据。RD:从TFT-LCD读取数据。D15:0:16位双向数据线。RST:硬复位TFT-LCD。RS:命令/数据标志(0,读写命令;1,读写数据)。TFT-LCD模块的RST信号线是直接接到STM32的复位脚上,并不由软件控制,这样可以省下来一个I/O口。另外我们还需要一个背光控制线来控制TFT-LCD的背光。所以我们总共需要的I/O口数目为21个。模块的控制器为ILI9320(可能为其他型号,但是他们的设置很相似,除了初始化序列有些区别,其他大都是一摸一样的,这里仅以9320为例介绍),该控制器自带显存,其显存总大小为172820(240*320*18/8),即18位模式(26万色)下的显存量。模块的16位数据线与显寸的对应关系为565方式,如下图所示:图2-316位数据与显存对应关系图最低5位代表蓝色,中间6位为绿色,最高5位为红色。数值越大,表示该颜色越深。接下来介绍一下ILI9320的几个重要命令,因为ILI9320的命令很多,这11里不一一介绍。这里我们要介绍的命令列表如下:表2.1ILI9320常用命令表R0,这个命令,有两个功能,如果对它写,则最低位为OSC,用于开启或关闭振荡器。而如果对它读操作,则返回的是控制器的型号。这个命令最大的功能就是通过读它可以得到控器的型号,而我们代码在知道了控制器的型号之后,可以针对不同型号的控制器,进行不同的初始化。因为93xx系列的初始化,其实都比较类似,我们完全可以用一个代码兼容好几个控制器。R3,入口模式命令。我们重点关注的是I/D0、I/D1、AM这3个位,因为这3个位控制了屏幕的显示方向。AM:控制GRAM更新方向。当AM=0的时候,地址以行方向更新。当AM=1的时候,地址以列方向更新。I/D1:0:当更新了一个数据之后,根据这两个位的设置来控制地址计数器自动增加/减少1,其关系如下图:12图2-4GRAM显示方向设置图通过这几个位的设置,我们就可以控制屏幕的显示方向了。R7,显示控制命令。该命令CL位用来控制是8位彩色,还是26万色。为0时26万色,为1时八位色。D1、D0、BASEE这三个位用来控制显示开关与否的。当全部设置为1的时候开启显示,全0是关闭。我们一般通过该命令的设置来开启或关闭显示器,以降低功耗。R32,R33,设置GRAM的行地址和列地址。R32用于设置列地址(X坐标,0239),R33用于设置行地址(Y坐标,0319)。当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到改点,然后写入颜色值就可以了。R34,写数据到GRAM命令,当写入了这个命令之后,地址计数器才会自动的增加和减少。该命令是我们要介绍的这一组命令里面唯一的单个操作的命令,只需要写入该值就可以了,其他的都是要先写入命令编号,然后写入操作数。R80R83,行列GRAM地址位置设置。这几个命令用于设定显示区域的大小,我们整个屏的大小为240*320,但是有时候我们只需要在其中的一部分区域写入数据,如果用先写坐标,后写数据这样的方式来实现,则速度大打折扣。此时我们就可以通过这几个命令,在其中开辟一个区域,然后不停的丢数据,地址计数器就会根据R3的设置自动增加/减少,这样就不需要频繁的写地址了,大大提高了刷新的速度。通过以上介绍,我们可以得出TFT-LCD显示需要的相关设置步骤如下:1)设置STM32与TFT-LCD模块相连接的I/O。这一步,先将我们与TFT-LCD模块相连的I/O口设置为输出,具体使用哪些I/O口,这里需要根据连接电路以及TFT-LCD模块的设置来确定。2)初始化TFT-LCD模块。通过向TFT-LCD写入一系列的设置,来启动TFT-LCD的显示。为后续显示字符和数字做准备。3)通过函数将字符和数字显示到TFT-LCD模块上。这里就是通过我们设计的程序,将要显示的字符送到TFT-LCD模块就可以了,这些函数将在软件设计部分向大家介绍。通过以上三步,我们就可以使用TFT-LCD13模块来显示字符和数字了,并且可以显示各种颜色的背景。2.3SD存储卡模块SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地应用于便携式装置上,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性,此外它可存多种格式数据文件,具有很强的可扩展性;用户可方便使用SD卡读卡器对其进行用户信息修改。2G金士顿SD卡实物如下图2-5所示。SD卡一般支持两种操作模式:SD卡模式与SPI模式。主机可以选择以上任意一种模式同SD卡通信,SD卡模式允许4线的高速数据传输。SPI模式允许简单的通过SPI接口来和SD卡通信,这种模式同SD卡模式相比就是丧失了速度。SD卡的引脚排序如下图2-6所示:图2-5KingstonSD卡图2-6SD卡引脚排序图SD卡引脚功能描述如下表所示:表2.2SD卡引脚功能表SD卡只能使用3.3V的I/O电平,所以,MCU一定要能够支持3.3V的I/O端口输出。在SPI模式下,CS/MOSI/MISO/CLK都需要加10100K左右的上拉电阻。SD卡要进入SPI模式很简单,就是在SD卡收到复位命令(CMD0)时,CS为有效电平(低电平)则SPI模式被启用。不过在发送CMD0之前,要发送74个时钟,这是因为SD卡内部有个供电电压上升时间,大概为64个CLK,剩下的10个CLK用于SD卡同步,之后才能开始CMD0的操作,在卡初始化的时候,CLK时钟最大不能超过400KHZ。本次硬件电路板使用的是SPI模式来读写SD卡,下面我们就重点介绍一下SD14卡在SPI模式下的相关操作。SPI模式下几个重要的操作命令,如下表所示:表2.3SPI模式下SD卡部分操作指令其中R1的回应格式如下表所示:表2.4SD卡R1回应格式SD卡的典型初始化过程如下:1)初始化与SD卡连接的硬件条件(MCU的SPI配置,I/O口配置);2)上电延时(74个CLK);3)复位卡(CMD0);4)激活卡,内部初始化并获取卡类型(CMD1(用于MMC卡)、CMD55、CMD41);5)查询OCR,获取供电状况(CMD58);6)是否使用CRC(CMD59);7)设置读写块数据长度(CMD16);8)读取CSD,获取存储卡的其他信息(CMD9);9)发送8CLK后,禁止片选;这样我们就完成了对SD卡的初始化,这里面我们一般设置读写块数据长度为512个字节,并禁止使用CRC。在完成了初始化之后,就可以开始读写数据了。SD卡读取数据,这里通过CMD17来实现,具体过程如下:1)发送CMD17;2)接收卡响应R1;3)接收数据起始令牌0XFE;4)接收数据;5)接收2个字节的CRC,如果没有开启CRC,这两个字节在读取后可以丢掉;6)8CLK之后禁止片选;以上就是一个典型的读取SD卡数据过程,SD卡的写与读数据差不多,写数据通过CMD24来实现,具体过程如下:151)发送CMD24;2)接收卡响应R1;3)发送写数据起始令牌0XFE;4)发送数据;5)发送2字节的伪CRC;6)8CLK之后禁止片选;第三章软件介绍3.1安装MDK3.8a(Keil):找到MDK的安装文件并点击安装,点击之后出现界面,选择Next选择”IAgreeLicenceagreement”同意协议,选择安装目录,这里选择安装的目录后,点击Next即可,随便输入邮箱之类的信息即可,点击Next开始安装,按图配置,然后点击Finish,左面会出现keil快捷图标。-13.2注册License在MDK针对每台机会有一个CID,copy这个CID到注册机处生成LicenseKey,然后再将这个LicenseKey添加到MDK里面去注册。右键点击左面的MDK快捷方式,选择“以管理员身份运行”,因为注册license16需要管理员权限。然后会打开MDK,然后默认会有一个名字叫“LPC2129simulator”的Project,暂时我们可以不用理会。点击:File-LicenseManagement,弹出一个LicenseManagement界面,copy界面中的(CID):-2打开光盘下面的注册机,目录为:ALIENTEK开发板资料软件MDK3.80A注册出现注册界面,黏贴刚才copy的cid到CID一栏,然后Target选择ARM17-3选择好之后点击“Generate”,下面的空白栏会生成一个LicenseKey,类似:D0DY8-30KAK-0N8AM-X9Z14-A2NWP-J3LZZ,copy这个license.将这个LicenseKey黏贴到Keil的LicenseManagement界面的NewLicenseIdCode一栏,然后点击“AddLIC”,添加成功后会出现成功提示。然后点击Close关闭这个界面即可。-43.3新建工程回到MDK主界面,可以看到工程中有一个默认的工程,点击这个工程名字,然后选择菜单Project-CloseProject,就关闭掉这个工程了!这样整个MDK就是18一个空的了,接下来我们将建立我们的工程模版。在建立工程之前,我们建议用户在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个文件夹下面,这里我们建立一个文件夹为:STM32-Projects.点击Keil的菜单:ProjectNewUvisionProject,然后将目录定位到刚才建立的文件夹STM32-Projecst之下,在这个目录下面建立子文件夹Tempalte,然后定位到Template目录下面,我们的工程文件就都保存到Template文件夹下面。工程命名为Template,点击保存保存工程界面接下来会出现一个选择Device的界面,就是选择我们的芯片型号,这里我们定位到STMicroelectronics下面的STM32F103RB(针对我们的mini板子是这个型号,如果是其他芯片,请选择对应的型号即可)。-5器件选择界面弹出对话框“CopySTM32StartupCodetoproject.”,询问是否添加启动代码到我们的工程中,这里我们选择“否”,因为我们使用的ST固件库文件已经包含了启动文件。可以看到工程建立了,我们回到Template目录下面,可以看到只有三个文件:-6接下来,我们在Template工程目录下面,新建3个文件夹CORE,USER,STM32F10x_FWLib。USER用来放我们主函数文件main.c,以及其他包括system_stm32f10x.c等等,CORE用来存放启动文件等,STM32F10x_FWLib文件夹顾名思义用来存放ST官方提供的库函数源码文件。19-7下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。打开官方固件库包,定位到我们之前准备好的固件库包的目录STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver下面,将目录下面的src,inc文件夹copy到我们刚才建立的STM32F10x_FWLib文件夹下面。src存放的是固件库的.c文件,inc存放的是对应的.h文件,您不妨打开这两个文件目录过目一下里面的文件,每个外设对应一个.c文件和一个.h头文件。-8下面我们要将固件库包里面相关的启动文件复制到我们的工程目录CORE之下。打开官方固件库包,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport下面,将20文件core_cm3.c和文件core_cm3.h复制到CORE下面去。然后定位到目录STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm下面,将里面所有的文件同样复制到CORE下面。这里我们解释一下,其实我们只用到arm目录下面的startup_stm32f10x_md.s文件,这个文件是针对中等容量芯片的启动文件。其他两个主要的为startup_stm32f10x_ld.s为小容量,startup_stm32f10x_hs.c为大容量芯片的启动文件。这里copy进来是方便其他开发者使用小容量或者大容量芯片的用户。现在看看我们的CORE文件夹下面的文件:-9定位到目录:STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x将里面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的USER目录之下。然后将STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template下面的4个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到USER目录下面。-10前面10个步骤,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件加入我们的工程中去。右键点击Target1,选择ManageComponentsProjectTargets一栏,我们将Target名字修改为Template,然后在Groups一栏删掉一个,建立三个Groups:USER,CORE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老年人高血压管理指南2025
- Brand KPIs for online betting:10bet in Mexiko-英文培训课件2025.5
- Brand KPIs for online betting:Sportsbet.io in Brazil-英文培训课件2025.5
- DeepSeek+兴趣教育应用场景规划方案
- 中职数学探究式教学模式的实践与思考
- 西昌市互生家具厂项目环评报告
- 2024-2025年第二学期学校整体工作总结-知不足而奋进
- 探析民办高职院校学生工作的现状及对策
- 山东省济宁市微山县第二中学2024-2025学年高二下学期第二次阶段测试语文试题
- 物理试题及答案
- 城市轨道交通客运组织电子教案(全)完整版课件整套教学课件
- GB∕T 33917-2017 精油 手性毛细管柱气相色谱分析 通用法
- 高压氧治疗操作规程以及护理常规
- 高中人教物理选择性必修二专题05 单双杆模型-学生版
- 二手车评估作业表简单实际样本
- 人民币小学学具图
- 新能源汽车的研究论文
- (完整word版)电梯管理证复审申请表
- 防错系统“红兔子”使用作业指导文件PPT课件
- 北师大版小学数学五年级下册单元测试题含答案(全册)
- 护理技术—鼻饲法课件
评论
0/150
提交评论