ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:1.14MB ,
资源ID:19208082      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19208082.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式电子相册解析Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式电子相册解析Word文档格式.docx

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

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

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

4、D卡内部有个供电电压上升时间,大概为64个CLK,剩下的10个CLK用于SD卡同步,之后才能开始CMD0的操作,在卡初始化的时候,CLK时钟最大不能超过400KHZ。3.2 LCD模块 ThinFilmTransistor(薄膜场效应晶体管),是指液晶显示器上的每一液晶象素点都是由集成在其后的薄膜晶体管来驱动。从而可以做到高速度、高亮度、高对比度显示屏幕信息,TFT-LCD(薄东南大膜晶体管液晶显示器)是多数液晶显示器的一种。TFT屏幕的优点如下:1).大面积 2).高集成度 3).功能强大 4).低成本 5).工艺灵活 6).应用领域广泛TFT液晶显示屏亮度好、对比度高、层次感强、颜色鲜艳,

5、其广泛应用于手机、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写入数据。RD:从TFT-LCD读取数据。D15:0:16位双向数据线。RST:硬复位TFT-LCD。RS:命

6、令/数据标志(0,读写命令;1,读写数据)。TFT-LCD模块的RST信号线是直接接到STM32的复位脚上,并不由软件控制,这样可以省下来一个I/O口。另外我们还需要一个背光控制线来控制TFT-LCD的背光。所以我们总共需要的I/O口数目为21个。该控制器自带显存,其显存总大小为172820(240*320*18/8),即18位模式(26万色)下的显存量。模块的16位数据线与显寸的对应关系为565方式,如下图所示 16位数据与显存对应关系图最低5位代表蓝色,中间6位为绿色,最高5位为红色。数值越大,表示该颜色越深。接下来介绍一下ILI9320的几个重要命令,因为ILI9320的命令很多,这里不

7、一一介绍。 通过以上介绍,我们可以得出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-L

8、CD模块来显示字符和数字了,并且可以显示各种颜色的背景。3.3 液晶显示部分电路设计 液晶显示部分主要由微控制器STM32F103RBT6驱动AM240320LSTNQW-00H完成人机界面状态的显示,通过发送命令字,完成液晶模块的初始化,完成对内容的显示,显示部分的硬件电路接口图如图2所示 系统液晶接口原理图3.4 ARM单片机STM32F103RBT6开发版简介 STM32F103RBT6使用高性能的ARM Cortex-M3 32位的RISC内核,工作频率为72 MHz,内置高速存储器(高达128 K字节的闪存和20 K字节的SRAM),丰富的增强I/O端口和连接到两条APB总线的外设。

9、所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN.供电电压2.03.6 V,一系列的省电模式保证低功耗应用的要求3.5 FAT文件系统 常用的文件系统有FAT12/16/32等,FAT12是最古老的文件系统,只能管理8 M左右的空间。现在基本淘汰了。FAT16则可以管理2 G的空间(通过特殊处理也能管理2 G以上的空间),而FAT32则能管理到2 TB(2 048 GB)的空间。FAT32较FAT16的优势还在于FAT32采用了更小的簇,可以更有效的保存信息,而不会造成多的

10、浪费。 本系统设计过程中采用了FAT32文件系统,它的主要组成部分如下: 1、MBR称为主引导记录区,该区存储了分区表等信息,位于SD卡的扇区0(物理扇区),在其分区信息里面记录了DBR所在的位置,SD卡一般只会有一个分区,所以也就只要找到分区1的DBR所在位置就可以了。 2、DBR称为操作系统引导记录区,如果没有MBR,那么DBR就位于0扇区;如果有,则必须通过MBR区得到DBR所在的地址,然后读出DBR信息。在DBR区,可以知道每个扇区所占用的字节数、每个簇的扇区数、FAT表的份数、每个FAT表的扇区敷、跟目录簇号、FAT表1所在的扇区等一系列非常重要的信息。 3、FAT称为文件分配表(F

11、AT表),一个卡上会存在2个FAT表,一个用作备份,一个使用。FAT表一般紧随DBR,另一个FAT表则紧随第一个FAT表,这样只要知道了第一个FAT表的位置及大小,那么第二个FAT表的位置也就确定了。FAT表记录了每个文件的位置和区域,是一种链式结构。 4、FDT称为文件根目录表,这个区域固定为32个扇区,假设每个扇区为512个字节。那么根目录下最多存放512个文件(假设都用短文件名存储,每个短文件名占32个字节)。文件目录表是另一个重要的部分,FAT文件系统中(仅以短文件名介绍),文件目录项在目录表下以32个字节的方式记录。4、软件设计 由于本设计直接在ARM单片机STM32F103RBT6

12、开发版实现,而且程序的工程是直接通过利用现有的通过修改而来的,所以在这里只是重点说明主函数程序。4.1 这是主程序的流程图4.2 主函数如下:#include stm32f10x.hhardware.husart.hili932x.hfat.hpicture.h#define EEPROM_WriteAddress 0#define EEPROM_ReadAddress 0#define TEXT_Size (Get_Size(TEXT_Buffer)-1)#define Get_Size(a) (sizeof(a) / sizeof(*(a)uint8_t TEXT_Buffer=MINI-

13、STM32 SD TEST;uint8_t REXT_BufferTEXT_Size;uint8_t Fill_Buffer= extern uint8_t gImage_11;static _IO uint32_t TimingDelay;void GPIO_Configuration(void);void NVIC_Configuration(void);void Time_Display(uint32_t TimeVar);uint8_t KEY_Scan(void);void Delay(_IO uint32_t nTime);int main(void) /主函数 uint8_t i

14、; uint8_t key; FileInfoStruct *FileInfo; uint16_t pic_cnt=0;/当前目录下图片文件的个数 uint16_t index=0; /当前选择的文件编号 uint16_t time=0; SystemInit(); /配置系统时钟72M(包括clock, PLL and Flash configuration) while(SysTick_Config(SystemFrequency / 1000); /Systick 配置延时n*ms GPIO_Configuration(); / 引脚配置 USART_Configuration(); /

15、异步通信初始化 NVIC_Configuration(); /系统中断配置 LCD_Init(); / LCD初始化 LCD_Clear(WHITE); /清屏 SPI_Configuration(); /SPI初始化 M45PE_Init(); /M45PE16初始化 SD_Init(); /SD卡初始化 USART_Send_Str(menu); POINT_COLOR=RED; Show_Str(60,50,Mini STM32开发板,16,0); Show_Str(60,70,简易电子相册 Show_Str(60,90,通信12-2班 Show_Str(60,110,2015年7月1日

16、 while(FAT_Init()/FAT 错误 Show_Str(60,130,文件系统错误! i= SD_Init(); if(i)Show_Str(60,150,SD卡错误!/SD卡初始化失败 Delay(500); LCD_Fill(60,130,240,170,WHITE);/清除显示 LED1=!LED1; while(SysInfoGet(1)/得到图片文件夹 图片文件夹未找到! FAT_Init(); SD_Init(); Show_Str(60,130,开始显示. Delay(1000); Cur_Dir_Cluster=PICCLUSTER; while(1) pic_cn

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

18、e_Info(Cur_Dir_Cluster,FileInfo,T_JPEG|T_JPG|T_BMP,&index);/得到这张图片的信息 /LCD_Clear(WHITE);/清屏,加载下一幅图片的时候,一定清屏 AI_LoadPicFile(FileInfo,0,0,240,320);/显示图片 POINT_COLOR=RED; while(1)/延时3s key=KEY_Scan(); if(key=1)break;/下一张 else if(key=2)/上一张 if(index1)index-=2; else index=pic_cnt-1; break; Delay(1); if(t

19、ime%100=0)LED1=! if(time3000) time=0; index+; if(indexpic_cnt)index=1;/显示第一副,循环 /* 函数名称: GPIO_Configuration* 功能描述: 配置IO口* 作 者: Dream* 日 期: 2010年12月17日*/void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Peri

20、ph_USART1, ENABLE); / 使能端口时钟,重要! /* 配置 LED1、LED2引脚的功能 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /通用推挽输出模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /输出最大频率为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); /初始化PA2、PA3 /* 配置 KEY1、KEY

21、2引脚的功能 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /上拉输入模式 /初始化PA0、PA1 /* 配置 USART1 Tx (PA9) */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /复用开漏输出模式 /* 配置 USART1 Rx (PA10) */ GPIO_InitStructure

22、.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; /浮空输入模式 /PB0 映射到通道8作为模拟输入引脚 ,ADC转换 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOB, & KEY_Scan 按键处理函数 0,没有任何按键按下 1,KEY1按下 2,KEY2按下 uint8_t KEY_Scan(void) static uint8_t KEY_UP=1; /按键按松开标志 if(KEY_UP&(KEY1=0|KEY2=0) Delay(10); /去抖动 KEY_UP=0; if(KEY1=0)return 1; else if(KEY2=0)return 2; else if(KEY1=1&KEY2=1)KEY_UP=1; return 0; /无按键按下 Delay 用Systick延时void Delay(_IO uint32_t nTime) TimingDelay = nTime; while(TimingDelay != 0); TimingDelay_Decrement Systick中断进入函数*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1