嵌入式电子相册解析_第1页
嵌入式电子相册解析_第2页
嵌入式电子相册解析_第3页
嵌入式电子相册解析_第4页
嵌入式电子相册解析_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 GUILIN UNIVERSITY OF TECHNOLOGY 信息科学与工程学院 基于STM32勺电子相册系统设计 专业班级:通信工程12-2班 姓 名:覃模广 学 号:3120731231 教 师:梁贵芹 本设计是一款基于STM32F10的电子相框系统读取SD卡中的图像文件通过 LCD屏幕将其显示。系统主要由 SD驱动、LCD驱动和功能控制模块组成。SD驱 动主要由SD接口驱动程序、FAT文件操作程序组成;LCD驱动主要由LCD屏驱动 芯片的驱动程序和图片显示程序组成;功能控制模块包括了系统初始化,显示初 始页面,显示方式的设置,驱动程序调用等功能,功能控制模块是系统的主模块。 在介绍了

2、文件系统与图像操作的基础上逐步说明了整个系统的实现。文件系统支 持FAT16/32,图像系统支持BMF等多种文件格式。整个系统的设计以模块化为基 础,易于升级。 关键词:STM32F103电子相框系统 SD卡LCD屏幕 FAT 文件系统 嵌入式系统的特点简介 嵌入式系统具有以下几个重要特征: 系统内核小,由于嵌入式系统一般应用于小型电子装置,系统资源相对有限, 所以内核较之传统的操作系统要小得多。比如,ENEA公司的OSE分布式系统, 内核只有5KB,而Windows的内核则要大得多。 专用性强,嵌入式系统的个性化很强,其中的软件系统和硬件结合非常紧密, 一般要针对硬件进行系统的移植,同时针对

3、不同的任务,往往需要对系统进行较 大的更改。另外,程序的编译下载要和系统相结合。 嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能的设计及 实现过于复杂,这样既利于控制系统成本,也利于实现系统安全。 高实时性的操作系统软件是嵌入式软件的基本要求,而且软件要求固化存储, 以提高速度,软件代码要求高质量和高可靠性。 嵌入式软件开发要想走向标准化, 就必须使用多任务操作系统。嵌入式系统的 应用程序可以没有操作系统而直接在芯片上运行,但为了更合理的调度多任务, 利用系统资源、系统函数,用户必须自行选配 RTO耕发平台。 执行的实时性、可靠性,并减少开发时间,保障软件质量。嵌入式系统开发需

4、要专门的开发工具和环境。由于嵌入式系统本身不具备自主开发能力, 即使完成 设计后,用户通常也不能对其中的程序功能进行修改, 因此必须有一套基于通用 计算机的开发工具和环境才能进行开发。 任务分析-确定方案-重难点-软件设计-硬件设计调试 一 *任务分析* 基于STM32设计一个电子相册系统,系统通电后能够正常进行图片的演示并且可 以通过按键控制上下张照片显示。 二*确定方案* 基于ARM单片机STM32F103RBT的存储程序控制,从SD卡读取图片,解码后 输出到TFT-LCD上显示,同时通过按键可以控制上下张显示。 1)硬件电路原理图的绘制;2)硬件资料的研究;3)软件方案的选择与论 证;4

5、)软件运行与调试; 三*重难点* FAT文件系统、TFT-LCD显示方法以、ARM单片机STM32F103RBT开发版的应用 和SD存储卡模块的正确使用。 通过查相关的资料得: 3.1 SD存储卡模块 SD 卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种 基于半导体快闪记忆器的新一代记忆设备,它被广泛地应用于便携式装置上,例 如数码相机、个人数码助理(PDA)和多媒体东 播放器等。SD卡由日本松下、东芝及美国San Disk公司于1999年8月共同开发 研制。大小犹如一张邮票的 SD记忆卡,重量只有2克,但却拥有高记忆容量、 快速数据传输率、极大的移动灵

6、活性以及很好的安全性,此外它可存多种格式数 据文件,具有很强的可扩展性;用户可方便使用SD卡读卡器对其进行用户信息 修改。2G金士顿SD卡实物如下图2-5所示。 SD卡一般支持两种操作模式:SD卡模式与SPI模式。 主机可以选择以上任意一种模式同 SD卡通信,SD卡模式允许4线的高速数据传 输。SPI模式允许简单的通过SPI接口来和SD卡通信,这种模式同SD卡模式相 比就是丧失了速度。SD卡的引脚排序如下图2-6所示 15 图2-6 SC卡引 图 2-5 Kin gst onSD卡 脚排序图 SD卡要进入SPI模式很简单,就是在SD卡收到复位命令(CMD)时,CS为有效 电平(低电平)则SPI

7、模式被启用。不过在发送 CMD之前,要发送74个时钟, 这是因为SD卡内部有个供电电压上升时间,大概为64个CLK剩下的10个CLK 用于SD卡同步,之后才能开始CMD0勺操作,在卡初始化的时候,CLK时钟最大 不能超过400KHZ 3.2 LCD模块 Thin Film Transistor(薄膜场效应晶体管),是指液晶显示器上的每一液 晶象素点都是由集成在其后的薄膜晶体管来驱动。从而可以做到高速度、高亮度、 高对比度显示屏幕信息,TFT-LCD (薄东南大 膜晶体管液晶显示器)是多数液晶显示器的一种。TFT屏幕的优点如下:1).大 面积2 ).高集成度3 ).功能强大4 ).低成本5 ).

8、工艺灵活6 ).应用领 域广泛 TFT液晶显示屏亮度好、对比度高、层次感强、颜色鲜艳,其广泛应用于手 机、MP4等消费品。因此,本系统选用2.8英寸TFT-LCD屏 (如图2-2所示)可 显26万色,分辨率320*240,控制器为ILI9320,采用16位的80并口,配合触 摸屏专用芯片XPT2046可对屏幕进行触摸操作,更显智能化和个性化。为了方 便用户使用,我们存储方式采用兼容FAT的文件系统,同时该文件系统也兼容 FAT32等电脑主流的 文件系统方式进行存储 2.8 英寸TFT-LCD模块 该模块的80 并口有如下一些信号线:CS TFT-LCD片选信号。WR向 TFT-LCD写入数据。

9、 RD从TFT-LCD读取数据。 D15:0 : 16位双向数据 线。 RST硬复位TFT-LCD RS命令/数据标志(0,读写命令;1,读写数 据)。TFT-LCD模块的RST信号线是直接接到STM32的复位脚上,并不由软 件控制,这样可以省下来一个I/O 口。另外我们还需要一个背光控制线来控制 TFT-LCD的背光。所以我们总共需要的I/O 口数目为21个。该控制器自带显存, 其显存总大小为172820(240*320*18/8),即18位模式(26万色)下的显存量。 模块的16位数据线与显寸的对应关系为 565方式,如下图所示 1st Transfer 16位数据与显存对应关系图 最低5

10、位代表蓝色,中间6位为绿色,最高5位为红色。数值越大,表示该颜 色越深。接下来介绍一下ILI9320的几个重要命令,因为ILI9320的命令很多, 这里不一一介绍。 通过以上介绍,我们可以得出 TFT-LCD显示需要的相关设置步骤如下: 1)设置STM32与 TFT-LCD模块相连接的I/O。 这一步,先将我们与TFT-LCD模块相连的I/O 口设置为输出,具体使用哪些 I/O 口,这里需要根据连接电路以及 TFT-LCD模块的设置来确定。 2)初始化TFT-LCD模块。 通过向TFT-LCD写入一系列的设置,来启动TFT-LCD的显示。为后续显示字 符和数字做准备。 3)通过函数将字符和数字

11、显示到 TFT-LCD模块上。 这里就是通过我们设计的程序,将要显示的字符送到TFT-LCD模块就可以 了,这些函数将在软件设计部分向大家介绍。通过以上三步,我们就可以使用 TFT-LCD模块来显示字符和数字了,并且可以显示各种颜色的背景。 3.3液晶显示部分电路设计 液晶显示部分主要由微控制器 STM32F103RBT驱动 AM240320LSTNQW- 人机界面状态的显示,通过发送命令字,完成液晶模块的初始化,完成对内容的 显示,显示部分的硬件电路接口图如图 2所示 FCS VDD 17 Zm SPI1 yi Ji SPiUMtSQ U SPEl MOSt 23 111 PAO-*llfP

12、 PAI PA3 PA3 PA4 PA5 P話 PjG iOW CfD G丄 IDOnF :G O.OIjiF _4j TT 1 SMHz lg J5 _ V uin t8_t REXT_BufferTEXT_Size; uin t8_t Fill_Buffer=; exter n uin t8_t glmage_11; static _IO uin t32_t Timi ngDelay; void GPIO_Co nfigurati on (void); void NVIC_Co nfigurati on (void); void Time_Display(ui nt32_t TimeVar

13、); uin t8_t KEY_Sca n(void); void Delay(_IO uin t32_t n Time); int mai n(void) /主函数 uint8_t i; uint8_t key; File In foStruct *File Info; clock, PLL and Flash /Systick 配置延 卡初始化失败 uin t16_t pic_cnt=O;当前目录下图片文件的个数 uin t16_t in dex=O; /当前选择的文件编号 ui nt16_t time=O; Systemlnit();/配置系统时钟 72M(包括 con figurati

14、 on) while(SysTick_Co nfig(SystemFreque ncy / 1000); 时 n*ms GPIO_C on figuratio n();/引脚配置 USART_Configuration();/异步通信初始化 NVIC_Configuration();/系统中断配置 LCD_Init();/LCD 初始化 LCD_Clear(WHITE);/ 清屏 SPI_C on figuratio n(); /SPI初始化 M45PEnit();/M45PE16 初始化 SD_Init();/SD 卡初始化 USART_Se nd_Str(me nu); POINT_COL

15、OR=RED; Show_Str(60,50,Mi ni STM32 开发板,16,0); Show_Str(60,70,简易电子相册,16,0); Show_Str(60,90,通信 12-2 班,16,0); Show_Str(60,110,2015 年 7 月 1 日,16,0); SD_Ini t(); while(FAT_I ni t()/FAT 错误 Show_Str(60,130,文件系统错误!,16,0); i= SD_I nit(); if(i)Show_Str(60,150,SD 卡错误!,16,0);/SD Delay(500); LCD_Fill(60,130,240,

16、170,WHITE);清除显示 Delay(500); LED1=!LED1; while(Sysl nfoGet(1)得到图片文件夹 Show_Str(60,130,图片文件夹未找到!,16,0); Delay(500); FAT_Ini t(); SD_Ini t(); LED1=!LED1; LCD_Fill(60,130,240,170,WHITE);清除显示 Delay(500); Show_Str(60,130,开始显示,16,0); Delay(1000); Cur_Dir_Cluster=PICCLUSTER; while(1) pic_c nt=0; Get_File_I n

17、fo(Cur_Dir_Cluster,Filel nfo,T_JPEG|T_JPG|T_BMP,/获取当前文件夹下面的目标文件个数 if(pic_c nt=0)没有图片文件 LCD_Clear(WHITE); 清屏 while(1) if(time%2=0)Show_Str(32,150,没有图片,请先 COPY图片到 SD卡的PICTURE文件夹,然后后重启!,16,0); else LCD_Clear(WHITE); time+; Delay(300); FileInfo=开辟暂存空间. in dex=1; while(1) Get_File_l nfo(Cur_Dir_Cluster,F

18、ilel nfo,T_JPEG|T_JPG|T_BMP,/得到这张图片的信息 LCD_Clear(WHITE);清屏,加载下一幅图片的时候,一定清屏 AI_LoadPicFile(Filel nfo,0,0,240,320);显示图片 POINT_COLOR=RED; while(1) 延时 3s key=KEY_Sca n(); if(key=1)break; 下一张 else if(key=2)上一张 if(i ndex1)i ndex-=2; else in dex=pic_c nt-1; break; Delay(1); time+; if(time%100=0) LED仁!LED1;

19、 if(time3000) time=0; break; in dex+; if(indexpic_cnt)index=1;显示第一副,循环 /* * * 函数名称:GPIO_Configuration *功能描述:配置IO 口 * 作者:Dream *日期:2010年12月17日 * */ void GPIO_C on figurati on (void) GPIOni tTypeDef GPIOn itStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_

20、USART1, ENABLE); / 使能端 口时钟,重要! ! /*配置LED1、LED2引脚的功能 /*配置KEY1、KEY2引脚的功能 通用推挽输 /输出最 初始化PA2 上拉输入模 初始化PA0 /复用开 /输出最 /浮空输 GPIO_I nitStructure.GPIO_Pi n = GPI0_Pin_2 | GPI0_Pin_3; GPIOni tStructure.GPIO_Mode = GPIO_Mode_Out_PP;/ 出模式 GPIOni tStructure.GPIO_Speed = GPIO_Speed_5OMH z; 大频率为50MHz GPIOni t(GPIO

21、A, / PA3 GPIOni tStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIOni tStructure.GPIO_Mode = GPIO_Mode_IPU;/ 式 GPIOni t(GPIOA, / PA1 /* 配置 USART1 Tx (PA9) */ GPIO_I nitStructure.GPIO_Pi n = GPIO_Pin_9; GPIOni tStructure.GPIO_Mode = GPIO_Mode_AF_PP; 漏输出模式 GPIOni tStructure.GPIO_Speed = GPIO_Speed_5OM

22、H z; 大频率为50MHz GPIOni t(GPIOA, /* 配置 USART1 Rx (PA10) */ GPIOn itStructure.GPIO_Pin = GPIO_Pin_10; GPIOn itStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 入模式 GPIOni t(GPIOA, /PBO映射到通道8作为模拟输入引脚,ADC转换 GPIOni tStructure.GPIO_Pin = GPIO_P in_O; GPIOni tStructure.GPIO_Mode = GPIO_Mode_AIN; GPI Oni t(GPIOB,

23、 /* * *函数名称:KEY_Scan *功能描述:按键处理函数 0,没有任何按键按下1,KEY1按下 2,KEY2按下 * 作者:Dream *日期:2010年12月17日 * */ uin t8_t KEY_Sca n(void) static uint8_t KEY_UP=1;/ 按键按松开标志 if(KEY_UP/ 去抖动 KEY_UP=0; if(KEY1=0)return 1; else if(KEY2=0)return 2; else if(KEY1=1 return 0;/无按键按下 * *函数名称:Delay *功能描述:用Systick延时 * 作者:Dream *日期:

24、2010年12月17日 * * void Delay(_IO uin t32_t n Time) Timi ngDelay = n Time; while(Timi ngDelay != 0); /* * * 函数名称:TimingDelay_Decrement *功能描述:Systick中断进入函数 * 作者:Dream *日期:2010年12月17日 * */ void Timin gDelay_Decreme nt(void) if (Timi ngDelay != 0 x00) Timi ngDelay-; /* 19 * 函数名称:NVIC_Configuration *功能描述:系

25、统中断管理 */ void NVIC_C on figurati on (void) #ifdef VECT_TAB_RAM /* Set the Vector Table base location at 0 x20000000 */ NVIC_SetVectorTable(NVIC_VectTab_RAM, 0 x0); #else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0 x08000000 */ NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0 x0); #en di

26、f #ifdef USE_FULL_ASSERT void assert_failed(ui nt8_t* file, uin t32_t line) n ame and line /* User can add his own implementation to report the file nu mber, ex: prin tf(Wro ng parameters value: file %s on line %dr n, file, line) */ /* Infin ite loop */ while (1) #en dif 23 4.3程序工程如右图所示: 编译没有问题后用 Jlink下载。打开 JFIashARM 软件, 选定对应的芯片, 步凑如下图 I- !+ 罔片显于宝验 UJ CMISIS 已目Main |总 maiin.c :-匡| tm32flOx_ 2| stm32fl0 x |前 common.h L-圉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论