基于STM32在LCD上显示SD卡中BMP图片的设计
- 格式:doc
- 大小:2.77 MB
- 文档页数:42
上海第二工业大学实训报告课程名称:电信专业综合实践学生姓名: xx xx xx学号:201x4820xxx 201x4820xxx 201x4820xxx 学院名称:工学部专业班级: xx电信A1目录摘要: (1)第一章绪论 (1)1.2本课题设计的背景 (1)1.2 本课题设计内容 (2)第二章实验方案的总体设计 (3)2.1详细设计组成框图: (3)2.2相关硬件简介 (3)2.3相关硬件原理图 (12)第三章设计流程图 (19)第四章硬件设计 (20)4.1中英文显示部分设计 (20)4.2 BMP图片部分设计 (21)4.3 SD卡读取的内容 (22)第五章软件设计 (23)5.1主函数部分程序设计 (23)5.2按键程序设计 (27)5.3 LED灯程序设计 (33)第六章系统调试结果及问题分析 ...................... 3错误!未定义书签。
6.1 系统调试后的实验现象........................ 3错误!未定义书签。
6.2 遇到的问题及解决办法 (38)第七章总结 (39)7.1思考与总结 (39)7.2参考文献: (40)基于STM32在LCD上显示SD卡中BMP图片的设计摘要:设计了一种基于STM32的处理器的按键式控制的BMP图片切换系统。
在设计过程中采用了SD卡中读取BMP格式图片及汉字字库,使LCD屏幕显示相关提示内容及设定格式的BMP图片。
完成了基于ARM最新Cortex-M3内核的处理器STM32的BMP 图片切换系统的硬件电路和软件程序的设计,实现了一个能在内存有限的片上系统中进行BMP图片切换的系统。
关键词:BMP图片;SD卡;ARM微控制器;STM32;片上系统第一章绪论1.1本课题设计的背景随着国民经济的起飞,现代社会的不断进步,广告的在新时期又有了新的发展。
进入新世纪LCD显示屏的技术和产业都取得了长足的发展,作为重要的现代信息发布媒体之一,LCD显示屏在证券交易、金融、交通、体育、广告等领域被广泛的应用。
伴随社会信息化进程的推进,LCD显示屏技术也在不断的推陈出新,应用领域愈加广阔。
基于STM32的LCD显示可以更好的满足各种需求,也更便于操作和实现。
现基于STM32在液晶显示屏幕上显示文本及图形。
目前,显示技术和显示工业的发展迅速。
显示技术是传递视觉的信息技术。
液晶显示器件LCD是当今最有发展前途的一种平板显示器件,它具有很多独到的优异特性。
它具有显示信息多、易于多彩化、体积小、重量轻、功耗低、寿命长、价格低、无辐射、无污染、接口控制方便等优点。
截至目前,我国在液晶显示取得较大进步,我国LCD产业已经走过了近30年的历程.经历几次大的投资浪潮之后,我国内地已经成为世界最大的TN-LCD(扭曲液晶显示器)生产基地和主要的STN-LCD(超扭曲液晶显示器)生产基地,并且从2003年开始,涉足TFT-LCD(薄膜晶体管液晶显示器)领域.1.2 本课题设计内容本次设计采用STM32ISO开发板,实现一个从SD卡读取图片内容及汉子库在LCD 显示屏上显示由按键控制图片切换的功能。
本实验用到的硬件部分主要有STM32开发板、USB线、LCD液晶模块、SD卡、J-Link仿真器等主要部分组成。
STM32开法板涉及Keil5程序的读取,SD卡读取裁剪过的图片,最后通过J-Link仿真器加载后,在LCD显示屏上显示相关内容,中英文内容提示通过设置延时衔接,图片通过按键直接控制。
第二章实验方案总体设计2.1详细设计组成框图:2.2相关硬件简介本节实验功能简介:开机的时候先初始化SD卡,如果SD卡初始化完成,则读取扇区0的数据,然后通过串口打印到电脑上。
如果没初始化通过,则在LCD上提示初始化失败。
同样用DS0来指示程序正在运行。
所要用到的硬件资源如下:●STM32开发板●USB线●LCD液晶模块●SD卡●J-Link仿真器2.2.1 STM32开发板STM32F103系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3。
该系列芯片按片内Flash的大小可分为三大类:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。
芯片集成定时器,CAN,ADC,SPI,I2C,USB,UART,等多种功能。
分为三大类:LD(小于64K),MD(小于256K),HD(大于256K),STM32F103VET6类属第三类。
STM32F103ZET6芯片介绍●基于ARM Cortex-M3核心的32 位微控制器,LQFP-144封装.●512K 片内FLASH(相当于硬盘),64K片内RAM(相当于内存),片内FLASH 支持在线编程(IAP).●高达72M 的频率,数据,指令分别走不同的流水线,以确保CPU运行速度达到最大化.●通过片内BOOT区,可实现串口下载程序(ISP).●片内双RC 晶振,提供8M和32K 的频率.●支持片外高速晶振(8M),和片外低速晶振(32K).其中片外低速晶振可用于CPU 的实时时钟,带后备电源引脚,用于掉电后的时钟行走.●42个16位的后备寄存器(可以理解为电池保存的RAM),利用外置的纽扣电池,和实现掉电数据保存功能.●支持JTAG,SWD调试.配合廉价的J-LINK,实现高速低成本的开发调试方案.●多达80个IO(大部分兼容5V逻辑),4个通用定时器,2个高级定时器,2个基本定时器,3路SPI接口,2路I2S 接口,2路I2C接口,5路USART,一个USB从设备接口,一个CAN接口,SDIO接口,可兼容SRAM,NOR和NAND Flash 接口的16位总线-FSMC.●3路共16通道的12位AD输入,2路共2 通道的12位DA 输出.支持片外独立电压基准.●CPU操作电压范围:2.0-3.6VSTM32开发板引脚图2.2.2 USB线USB开发涉及主机和设备,为了避免开发驱动程序,使用Windows自带的驱动程序。
所以设备枚举成HID类设备。
USB鼠标就是标准的USB-HID设备。
不过操作系统阻止了应用程序直接访问USB鼠标返回的报告。
所以本例使用自定义HID设备。
一来免去了开发驱动程序,二来自定义的HID设备应用程序和设备可以自由收发数据(仅指数据内容)。
USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。
USB接口即插即用和热插拔功能。
USB接口可连接127种外设,如鼠标和键盘等。
USB是在1994年底由英特尔等多家公司联合在1996年推出后,已成功替代串口和并口,已成为当今电脑与大量智能设备的必配接口。
USB版本经历了多年的发展,到如今已经发展为3.0版本. 对于大多数工程师来说,开发USB2.0 接口产品主要障碍在于:要面对复杂的USB2.0协议、自己编写USB设备的驱动程序、熟悉单片机的编程。
这不仅要求有相当的VC编程经验、还能够编写USB接口的硬件(固件)程序。
所以大多数人放弃了自己开发USB产品。
为了将复杂的问题简单化,西安达泰电子特别设计了USB2.0协议转换模块。
USB20D模块可以被看作是一个USB2.0协议的转换器,将电脑的USB2.0接口转换为一个透明的并行总线,就象单片机总线一样。
从而几天之内就可以完成USB2.0产品的设计。
本实验用到的USB线2.2.3 液晶显示器LCD 控制器简介液晶显示器(Liquid Crystal Display: LCD)的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。
LCM(LCD Module)即LCD显示模组、液晶模块,是指将液晶显示器件,连接件,控制与驱动等外围电路,PCB电路板,背光源,结构件等装配在一起的组件。
LCD,由于液晶显示屏功耗低、体积小,承载的信息量大,因而被广泛用于信息输出、与用户进行交互。
由于 STM32 内部没有集成专用的液晶屏和触摸屏的控制接口,所以在显示面板中应自带含有驱动芯片的驱动电路(液晶屏和触摸屏的驱动电路是独立的),STM32 芯片通过驱动芯片来控制液晶屏和触摸屏。
以本实验3.2 寸液晶屏(240*320)为例,它使用 ILI9341 芯片控制液晶屏,通过 XPT2046 芯片控制触摸屏。
LCD 为非发光性的显示装置,它需要借助背光源才能达到显示功能,LED 控制器就是用来控制液晶屏中的 LED 背光源。
液晶显示器在内部电路结构上主要有以下几个部分构成:1、驱动板(也叫主板):主要是用以接收、处理从外部送进来的模拟(VGA)或者数字(DVI)视频信号,并通过屏线送出信号去控制液晶屏(PANEL)正常工作。
驱动板上含有MCU单元,它是液晶显示器的检测控制中心和大脑。
2、电源板:用于将90~240V 的交流电压转变为12V、5V、3V 等的直流电供给显示器工作。
本实验用的STM32开发板3、背光板(也叫高压板):用于将主板或电源板输出的12V 的直流电压转变为PANEL 需要的高频的1500~1800V 的高压交流电,用于点亮PANEL的背光灯。
电源板和背光板有时会做在一起也就是所谓的电源背光二合一板。
4、液晶屏:液晶显示用模块,它是液晶显示器的核心部件,其包含液晶板和驱动电路。
其中,液晶屏是液晶显示器内部最为关键的部件,它对液晶显示器的性能和价格具有决定性的作用。
本实验对应的背光板程序(程序很多不一一列举,仅取部分)(1) ILI9341控制器结构液晶屏的控制芯片内部结构非常复杂,最主要的是位于中间GRAM(Graphics RAM),可以理解为显存。
GRAM 中每个存储单元都对应着液晶面板的一个像素点。
它右侧的各种模块共同作用把 GRAM 存储单元的数据转化成液晶面板的控制信号,使像素点呈现特定的颜色,而像素点组合起来则成为一幅完整的图像。
接口与 MCU 进行通讯,MUC 通过 8080 接口与 ILI9341进行通讯,从而访问它的控制寄存器(CR)、地址计数器(AC)、及 GRAM。
(2)像素点的数据格式图像数据的像素点由红(R)、绿(G)、蓝(B)三原色组成,三原色根据其深浅程度被分为0~255 个级别,它们按不同比例的混合可以得出各种色彩。
ILI9341 最高能够控制 18 位的 LCD,但为了数据传输简便,我们采用它的 16 位控制模式,以 16 位描述的像素点。
按照标准格式,16 位的像素点的三原色描述的位数为 R:G:B =5:6:5,描述绿色的位数较多是因为人眼对绿色更为敏感。
(3)ILI9341的通讯时序目前,大多数的液晶控制器都使用 8080 或 6800 接口与 MCU 进行通讯,它们的时序十分相似,本实验以 ILI9341 使用的 8080 通讯时序进行分析.ILI9341 的 8080 接口有 5 条基本的控制信号线:●用于片选的 CSX 信号线;●用于写使能的 WRX 信号线;●用于读使能的 RDX 信号线;●用于区分数据和命令的 D/CX 信号线;●(用于复位的 RESX 信号线。