毕业设计论文基于stm32的触摸屏控制设计管理资料.docx
- 文档编号:26347250
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:25
- 大小:729.47KB
毕业设计论文基于stm32的触摸屏控制设计管理资料.docx
《毕业设计论文基于stm32的触摸屏控制设计管理资料.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于stm32的触摸屏控制设计管理资料.docx(25页珍藏版)》请在冰豆网上搜索。
毕业设计论文基于stm32的触摸屏控制设计管理资料
湖南农业大学东方科技学院
全日制普通本科生毕业论文
基于STM32的触摸屏控制设计
BasedonSTM32andTouchTcreenControlDesign
学生姓名:
学号:
年级专业及班级:
2008级信息工程
(2)班
指导老师及职称:
学部:
理工学部
提交日期:
2012年5月
湖南农业大学东方科技学院全日制普通本科生
毕业论文(设计)诚信声明
本人郑重声明:
所呈交的本科毕业论文是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。
除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。
同时,本论文的著作权由本人与湖南农业大学东方科技学院、指导教师共同拥有。
本人完全意识到本声明的法律结果由本人承担。
毕业论文(设计)作者签名:
(作者手写签名)
年月日
基于STM32的触摸屏控制设计
摘要:
伴随着科技的发展,现代电子产品中的单片机和触摸屏在手机、导航仪器、电子测试仪器以及咨询终端等设备中都有很广泛的应用。
作为一种单片机,STM32采用了ARM先进架构的Cortex-M3内核,它不仅在实时性、功耗控制、外设以及集成整合方面都显得非常不错,并且易于开发,可使产品快速进入市场。
本文设计主要是基于STM32的开发板,通过100P对STM32进行串口虚拟仿真,结合C语言,使用STM32的FSMC模块的时钟对FSMC模块以及LCD的启动配置进行初始化,再控制LCD显示各种字符和图形,从而实现对TFT屏的控制。
本设计的触摸屏作为一种信息交流的媒介,具有着编程灵活、反应速度快、体积小以及低耗能的优点,它为触摸屏在今后面向更智能、更人性的方面发展提供了科学的参考依据。
关键词:
STM32;触摸屏;FSMC;ARM;薄膜晶体管
BasedonSTM32andTouchTcreenControlDesign
niversity,Changsha410128)
Abstract:
With the development of science and technology,the single-chip microcomputer and touch screen of modern electronic products have a very wide range of applications in devices,such as mobile phones, Navigational instruments, electronics test instrument and consulting terminal. As a microcontroller, STM32 is used the ARM’s Cortex-M3 core .It is not only performed well in some aspects of real-time, power control,peripherals and integration ,but also easy to develop and allow the products to entrance market quickly. Paper’s Design is mainly based on the STM32’s development board. In order to control the TFT screen, through 100P, it conducted serial virtual simulation to STM32 and combined with the C language and used the STM32’s FSMC module of the clock to initialize FSMC module and the startup configuration of LCD, and then it displayed all kinds of characters and graphics of touch screen serve as a medium of information exchange in this design which has some advantages of programming flexibility, fast response, small size and low power .It provided scientific reference basis for the touch screen’s development in aspect of intelligence and humanity the in the future.
Keywords:
STM32;Touchscreen;FSMC;ARM;ThinFilmTransistord
1前言
ARM应用背景
现在社会中嵌入式的应用已经大范围的普及到现实生活中,越来越多的电子产品已经不能被8位处理器所满足,比如GUI,TCP/IP,FILESYSTEM等。
而ARM处理器具有非常强大的处理能力和比较低的功率消耗,这些电子产品在选型的时候会选择ARM处理器[1]。
ARM的嵌入式应用有很多:
工业领域—作为32的RISC架构,基于ARM的微控芯片在高端微控器市场和低端微控制应用领域都有不小的市场份额。
和传统的8/16位的微控制器相比ARM芯片不仅功耗低而且在性价比方面也有很大的优势[2]。
一个典型的ARM嵌入式工业控制系统的功能模块如图:
图1ARM嵌入式工业控制系统的功能模块
ARMembeddedindustrialcontrolsystemfunctionmodule
无线通信领域—目前已有超过85%的无线通讯设备采用了ARM的技术。
网络应用—随着带宽技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。
特别在语音和视频的处理上有很大的优势。
成像和安全产品—现在的数码相机和打印机绝大部分都是采用的ARM技术。
手机的32位智能卡也采用的事ARM技术。
数码相机的功能模块:
消费类电子产品—ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏中得到广泛的采用[3]。
研究内容
本设计的主要目的是对大学四年知识的综合和加深对ARM的学习以及提高动手能力和解决问题的能力。
本次设计是基于STM32的开发板,通过对开发板的学习,掌握STM32的一些基本功能。
通过对100P对STM32进行虚拟仿真,来对TFT屏的控制。
主要是使用STM32的FSMC模块的时钟去初始FSMC模块,然后初始化LCD的启动配置,来控制LCD显示各种字符、图形。
“TFT320x240LCD(控制器ILI9325)”,采用CPU的FSMC功能,LCD片选CS采用FSMC_NEI(P88),FSMC_A16(P58)作为LCD的RS选择,FSMC_nWE(P86)作为LCD的/WR,FSMC_nOE(P85)作为LCD的/RD,LCD的RESET脚用CPU的PE9(P98)(LCD-RST),FSMC_FSMC_D15和LCD的DB1-DB8DB10-DB17相互连接,触摸屏接口采用SP11接口,片选PB-SP11-CS3,触摸电路的中断申请由PB6-7846-INT接收。
TFT液晶显示屏是薄膜晶体管型液晶显示屏。
TFT液晶为每个像素都设有一个半导体开关,每个像素都可以通过点脉冲直接控制,因而每个节点都相对独立,并可以连续控制,不仅提高了显示屏的反应速度,同时可以精确控制显示色阶,所以,TFT液晶的笆彩更真[4]。
本文中采用的TFT液晶屏分辨率位320x240,采用的控制芯片为ILI9320,自带总大小为172820(240x320x1818)的显存,模块的16位数据线与显寸的对应关系为565方式,它支持多种控制输入信号。
LCD寄存地址为:
0x60000000
LCD数据区地址:
0x60020000
电路引脚图如下:
图2TFT320x240LCD引脚图
TheTFT320x240LCDpindiagram
本文的第一章讲述了该论文的写作背景,主要是说明ARM的应用范围和论文的研究内容;第二章讲述该研究课题使用的开发板的内部资源和开发板核心芯片STM32F103VE脚的各项参数;第三章着重讲述图片的处理和显示实现方法;第四章介绍本研究的软件设计模块;第五章讲述测试方法和结果。
研究成果
配置好各通道后,编译运行工程,将程序烧入ARM芯片。
点击RST,通过TFT显示屏可以观察到一副完整的图片。
2STM32处理器的概述
STM32简介
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。
按性能分成两个不同的系列:
STM32F103“增强型”系列和STM32F101“基本型”系列。
增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。
两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。
时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,。
STM32F103xx增强型系列使用高性能的ARM/Cortex-M3/32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:
2个I2C和SPI、3个USART、一个USB和一个CAN。
STM32F103xx增强系列工作的温度范围是-40度到105度,。
完整的STM32F103xx增强型产品引脚从36到100有五种不同的封装形式;不同的封装形似相应的外设配置也不同。
这些丰富的外设配置,造就了STM32F103xx增强型微控制适合在多种场合去应用:
电机驱动和应用控制、医疗和手持设备、PC外设和GPS平台、可编程控制器、打印机、警报系统等[5]。
STM32的参数
STM32芯片的引脚图:
图3STM32F103xx增强型LQPFP48管脚图
STM32F103xxenhancedLQPFP48pinmap
内部资源
STM32有丰富的内部资源,如下所示:
RealViewMDK(MiertocontrollerDevelopmentKit)基于ARM微控制器的专业嵌入式开发工具;内置闪存存储器;内置SRAM;嵌套的向量式中断控制器(NVIC);外部中断/事件控制器(EXTI);时钟和启动;自举模式;DMA;RTC(实时时钟)和后备寄存器;窗口看门狗;I2C总线;通用同步/异步接受发送器(USART);串行外设接口(SPI);控制器区域网络(CAN);通用串行总线(USB);通用输入输出接口(GPIO);ADC(模拟/数字转换器);温度传感器;串行线JTAG调试口(SWJ-DP)[3]。
Cortex-M3简介
ARM公司于2005年推出了Cortex-M3内核,就在当年ARM公司与其他投资商合伙成立了Luminary(流明诺瑞)公司,由该公司率先设计、生产与销售基于Cortex-M3内核的ARM芯片-Stellaris(群星)系列ARM。
Cortex-M3是ARM公司基于ARMV7架构的新型芯片内核[6]。
Cortex-M3内核包含一个适用于传统Thumb和新型Thumb-2指令的译码器、一个支持硬件乘法和硬件除法的先进ALU、控制逻辑和用于连接处理器其他部件的接口。
Cortex-M3处理器是首款基于ARMv7-M架构的ARM处理器[7]。
中央Cortex-M3内核使用3级流水线哈佛架构,运用分支预测、单周期乘法和硬件除法功能实现了出色的效率()。
Cortex-M3处理器是一个32位处理器,带有32位宽的数据路径、寄存器库和基于传统ARM7处理器的系统只支持访问对齐的数据,沿着对齐的字边界即可对数据进行访问和存储[8]。
Cortex-M3处理器采用非对齐数据访问方式。
Cortex-M3中央内核基于哈佛架构,指令和数据各使用一条总线(如图所示)。
内核流水线分3个阶段:
取指、译码和执行。
当遇到分支指令时,译码阶段也包含预测指令取指,这提高了执行的速度,处理器在译码阶段期间自行对分支目的地指令进行取指。
在稍后的执行过程中,处理完全分支指令后便知道下一条要执行的指令。
如果分支不跳转,那么紧跟着的下一条指令随时可供使用。
如果分支跳转,那么在跳转的同时分支指令可供使用,空闲时间限制为一个周期[9]。
Cortex-M3内核图如下:
图4Cortex-M3内核框图
TheCortex-M3kerneldiagram
Cortex-M3处理器是专为那些对成本和功耗非常敏感但同时对性能要求又相当高的应用而设计的。
凭借缩小的内核尺寸和出色的中断延迟性能、集成的系统部件、灵活的配置、简单的高级编程和强大的软件系统,Cortex-M3处理器将成为从复杂的芯片系统到低端微控制器等各种系统的理想解决方案。
与Cortex-M3不同,ARM7系列处理器使用VonNeumann架构,指令和数据共用信号总线以及存储器[10]。
由于指令和数据可以从存储器中同时读取,所以Cortex-M3处理器对多个操作并执行,处理器对多个操作并行执行,加快了应用程序的执行速度[11]。
Cortex-M3处理器与ARM7作比较见。
3图片的处理和显示实现方法
液晶显示电路设计:
TFT驱动系统包括信号输入、信号处理、CPU控制、信号输出几个主要部分。
核心部分为信号处理。
以下是TFT液晶显示器的显示电路:
图5液晶显示电路
Liquidcrystaldisplaycircuit
图片的处理:
总体方案与硬件整体架构
现在,TFT屏的价格与传统的单色液晶模块的价格几乎相当,甚至比一些尺寸差不多的单色屏还要便宜;而从客户和厂商的角度来看,很多设备/仪器/小型工业装备的制造商也纷纷寻求彩色TFT的设计方案,以提升产品的竞争力和显示效果[4]。
以STM32处理器的FSMC接口挂载RGB接口数字屏并结合DMA传输的方式设计出了一种驱动RGB数字屏的方法。
DMA即直接存储器,存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。
本文采用STM32F103VET6外部挂接ISSI的25616SRAM512KB的静态RAM用作显存,再使用DMA的MemorytoMemory模式从外部显存往FSMC的数据线不停地送数据来刷新彩屏,无需CPU的干预。
在STM32上开发LCD显示,可以有两种方式来对LCD进行操作,一种是通过普通的IO口,连接LCM的相应引脚来进行操作,第2种是通过FSMC来进行操作。
可变静态存储控制器(FlexibleStaticMemoryController:
FSMC)是STM32系列中内部集成256KB以上FlaSh,后缀为xC、xD和xE的高存储密度微控制器特有的存储控制机制。
之所以称为“可变”,是由于通过对特殊功能寄存器的设置,FSMC能够根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型以匹配信号的速度,从而使得STM32系列微控制器不仅能够应用各种不同类型、不同速度的外部静态存储器,而且能够在不增加外部器件的情况下同时扩展多种不同类型的静态存储器,满足系统设计对存储容量、产品体积以及成本的综合要求。
FSMC有很多优点:
其一:
支持多种静态存储器类型。
STM32通过FSMC可以与SRAM、ROM、PSRAM、NORFlash和NANDFlash存储器的引脚直接相连。
其二:
支持丰富的存储操作方法。
FSMC不仅支持多种数据宽度的异步读/写操作,而且支持对NOR、PSRAM、NAND存储器的同步突发访问方式。
其三:
支持同时扩展多种存储器。
FSMC的映射地址空间中,不同的BANK是独立的,可用于扩展不同类型的存储器。
当系统中扩展和使用多个外部存储器时,FSMC会通过总线悬空延迟时间参数的设置,防止各存储器对总线的访问冲突。
其四:
支持更为广泛的存储器型号。
通过对FSMC的时间参数设置,扩大了系统中可用存储器的速度范围,为用户提供了灵活的存储芯片选择空间。
其五:
支持代码从FSMC扩展的外部存储器中直接运行,而不需要首先调入内部SRAM。
FSMC包含两类控制器:
1个NOR闪存/SRAM控制器,可以与NOR闪存、SRAM和PSRAM存储器接口;1个NAND闪存/PC卡控制器,可以与NAND闪存、PC卡,CF卡和CF+存储器接口。
控制器产生所有驱动这些存储器的信号时序:
16位数据线,用于连接8位或16位的存储器;26位地址线,最多可连续64MB的存储器(这里不包括片选线);5位独立的片选信号线;1组适合不同类型存储器的控制信号线:
控制读/写操作、与存储器通信,提供就绪/繁忙信号和中断信号、与所用配置的PC卡接口:
PC存储卡、PCI/O卡和真正的IDE接口。
从FSMC的角度看,可以把外部存储器划分为固定大小为256MB的4个存储块。
存储块1用于访问最多4个NOR闪存或者PSRAM存储设备。
这个存储区被划分为4个NOR/PSRAM区,并有4个专用的片选。
存储块2和3用于访问NAND闪存设备,每个存储块连接一个NAND闪存。
存储块4用于访问PC卡设备每一个存储块上的存储器类型是由用户在配置寄存器中定义的[12]。
注意:
FSMC只是提供了一个控制器,并不提供相应的存储设备,至于外设接的是什么设备,完全是由用户自己选择,只要能用于FSMC控制,就可以,像本次实验中,我们接的就是LCM。
本例中FSMC的使用
利用FSMC对LCM进行操作,因此不用完全懂得FSMC的所有功能,而是懂得一部分相应的操作即可。
FSMC包含以下4个模块:
AHB接口(包含FSMC配置寄存器)、NOR闪存和PSRAM控制器、NAND闪存和PC卡控制器、外部设备接口。
需要注意的是,FSMC可以请求AHB进行数据宽度操作。
如果AHB操作的数据宽度大于外部设备(NOR或NAND或LCD)的宽度,此时FSMC将AHB操作分割成几个连续的较小的数据宽度,以适应外部设备的数据宽度。
FSMC对外部设备的地址映像从0x60000000开始,到0x9FFFFFFF结束,一共4个地址块,每个地址块256MB,而每个地址块又分成4个分地址块,大小为64MB。
对于NOR的地址映像来说,我们可以通过选择HADDR[27:
26]来确定当前使用的是哪个64M的分地址块。
而这四个分存储块的片选,则使用NE[4:
1]来选择。
数据线/地址线/控制线是共享的。
这里的HADDR是需要转换到外部设备的内部AHB地址线,每个地址对应一个字节单元。
因此,若外部设备的地址宽度是8位的,则HADDR[25:
0]与STM32的CPU引脚FSMC_A[25:
0]一一对应,最大可以访问64M字节的空间。
若外部设备的地址宽度是16位的,则是HADDR[25:
1]与STM32的CPU引脚FSMC_A[24:
0]一一对应。
在应用的时候,可以将FSMC_A总线连接到存储器或其他外设的地址总线引脚上。
ILI9325
由于我们使用的是STM32开发板,其内部自带的是一个LCM,而LCM中的驱动IC就是采用的ILI9325。
nCS:
IC的片选信号。
如果是低电平,则ILI9325是被选中,并且可以进行操作,如果是高电平,这不被选中。
RS:
寄存器选择信号。
如果是低电平,则选择的是索引或者状态寄存器,如果是高电平,则选择控制寄存器。
nWR/SCL:
写使能信号,低电平有效。
nRD:
读使能信号,低电平有效。
以上内容是从ILI9325的Datasheet里面找到的,但是根据我的实际操作发现,似乎高电平也是有效的。
而且,不管是高电平还是低电平,都可以成功驱动LCD,如果有了解情况的可以讨论一下。
ILI9325的寄存器非常多,详细的各个寄存器的功能请参考ILI9325的Datasheet。
在对ILI9325进行操作时,应该先写地址,然后再写数据,设置好各个寄存器之后,ILI9325就可以开始工作了。
显示实现
TFT的LCD控制器ili9325寄存器采用16位控制器。
80口有CS、WR、RD、D[15:
0]、RST、RS这些信号线。
CS表示TFT片选信号,为0时,片选成功。
WR表示向TFTLCD写入数据,上升沿有效。
RD表示从TFTLCD中读取数据,上升沿也有效。
D[15:
0]表示16位双向数据线,可读可写。
RST表示硬复位TFTLCD,为1时写有效。
RS表示命令或数据标志,0表示读写命令,1表示读写数据。
TFTLCD模块的RST信号线直接接到STM32的复位脚上,由于不用软件来控制,就省下了一个IO口。
ILI9325模板控制器自带显存,显存大小为240*320*18/8,也就是18位模式下的显存量。
ILI9325的数据线和显存的关系是565的关系。
即如下图所示:
图6ILI9325数据线和显存的关系
TheILI9325datalinesandthememoryoftherelationship
最低的5位代表的是蓝色,中间6位是绿色,最高的5位是红色。
并且相应的数字越大表示颜色就会越深。
RO有两个功能,即读和写操作。
如果对RO进行写操作,那么最低位位OSC,用于开启或者关闭振荡器。
如果对RO进行读操作,就会返回控制器的型号。
这个命令的最大功能就是可以通过它获得控制器的信号,而我们可以根据不同型号的控制器去进行不同的初始化。
93xx系列的初始化区别不大,我们完全可以用一个代码控制几个控制器。
R3是入口的模式命令,R3中的I/D0、I/D1、AM这三个位控制屏幕的方向。
AM控制GRAM的更新方向,即当AM取0时,地址以行的方式更新。
当AM取值为1是就以列的方向更新。
I/D[1:
0]表示在更新了一个数据后,就会根据这两个位来设置控制地址计数器自动增加或者减少。
R7是显示命令。
是用来命令CL位去控制8位彩色和26万色的。
当取值为0时,就表示26万色,取值1就是8位色。
D1、D0、BASEE这三个位是用来控制显示开关的,当全部取1时就表示显示,取0就关闭。
R32、R33是用来设置GRAM的行地址和列地址的。
R32是用来设置列地址Y坐标范围(0-239),R33是用来设置行地址X坐标范围(0-319)。
去颜色的时候就是把这两个命令设置到改点,然后写入颜色。
R34是写数据到GRAM的命令。
只有写入这个命令后,地址器才可以自动增加和减少。
这是一个单个操作的命令,只需要写入值就可以。
R80_R83表示行列GRAM地址位置设置,用这几个命令可以设定显示区域。
在TFT屏中有时候我们只需要在其中的一份区域写入数据就可以了,如果先写坐标后写数据就会使速度变慢。
这个时候我们可以通过这几个命令去开辟一个区域,然后不停地丢数据,地址计数器就会自动设置加或者减,这样就可以避免频繁写地址提高刷新速度。
TFTLCD字显示:
每一个字符就是一个图像,字符的大小和图像的大小相对应,字符的笔画和图像的内容相对应。
运用字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 stm32 触摸屏 控制 设计 管理 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)