基于stm32的数码相框设计与实现内容摘要:

33,设置 GRAM 的行地址和列地址。 R32 用于设置列地址( X 坐标,0~239), R33 用于设置行地址( Y 坐标, 0~319)。 当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到改点,然后写入颜色值就可以了。 R34,写数据到 GRAM 命令,当写入了这个命令之后,地址计数器才会自动的增加和减少。 该命令是我们要介绍的这一组命令里面唯一的单个操作的命令,只需要写入该值 就可以了,其他的都是要先写入命令编号,然后写入操作数。 R80~R83,行列 GRAM 地址位置设置。 这几个命令用于设定显示区域的大小,我们整个屏的大小为 240*320,但是有时候我们只需要在其中的一部分区域写入数据,如果用先写坐标,后写数据这样的方式来实现,则速度大打折扣。 此时我们就可以通过这几个命令,在其中开辟一个区域,然后不停的丢数据,地址计数器就会根据 R3 的设置自动增加 /减少,这样就不需要频繁的写地址了,大大提高了刷新的速度。 通过以上介绍,我们可以得出 TFTLCD 显示需要的相关设置步骤如下: 1) 设置 STM32 与 TFTLCD 模块相连接的 I/O。 这一步,先将我们与 TFTLCD 模块相连的 I/O 口设置为输出,具体使用哪些 I/O口,这里需要根据连接电路以及 TFTLCD 模块的设置来确定。 2)初始化 TFTLCD 模块。 通过向 TFTLCD 写入一系列的设置,来启动 TFTLCD 的显示。 为后续显示字符和数字做准备。 3)通过函数将字符和数字显示到 TFTLCD 模块上。 这里就是通过我们设计的程序,将要显示的字符送到 TFTLCD 模块就可以了,这些函数将在软件设计部分向大家介绍。 通过以上三步,我们就可以使 用 TFTLCD模块来显示字符和数字了,并且可以显示各种颜色的背景。 SD 存储卡模块 SD 卡( Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地应用于便携式装置上,例如数码相机、个人数码助理 (PDA)和多媒体播放器等。 SD 卡由日本松下、东芝及美国 SanDisk 公司于 1999 年 8 月共同开发研制。 大小犹如一张邮票的 SD 记忆卡,重量只有 2 克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性,此外它可存多种格 式数据文件,具有很强的可扩展性;用户可方便使用 SD 卡读卡器对其进行用户信息修改。 2G 金士顿 SD 卡实物如下图 25 所示。 SD 卡一般支持两种操作模式: SD 卡模式与 SPI 模式。 主机可以选择以上任意一种模式同 SD 卡通信, SD 卡模式允许 4 线的高速数据传输。 SPI 模式允许简单的通过 SPI 接口来和 SD 卡通信,这种模式同 SD 卡模式相比就是丧失了速度。 SD 卡的引脚排序如下图 26 所示: 更多相关参考论文设计文档资源请访问 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系 68661508 索要 图 25 Kingston SD 卡 图 26 SD卡引脚排序图 SD 卡引脚功能描述如下表所示: 表 SD卡引脚功能表 SD 卡只能使用 的 I/O 电平,所以, MCU 一定要能够支持 的 I/O 端口输出。 在 SPI 模式下, CS/MOSI/MISO/CLK 都需要加 10~100K 左右的上拉电阻。 SD卡要进入 SPI 模式很简单,就是在 SD 卡收到复位命令( CMD0)时, CS 为有效电平(低电平)则 SPI 模式被启用。 不过在发送 CMD0 之前,要发送 74 个时钟,这是因为 SD 卡内部有个供电电压上升时间,大概为 64 个 CLK,剩下的 10 个 CLK 用于 SD 卡同步 ,之后才能开始 CMD0 的操作,在卡初始化的时候, CLK 时钟最大不能超过 400KHZ。 本次硬件电路板使用的是 SPI 模式来读写 SD 卡,下面我们就重点介绍一下 SD卡在 SPI 模式下的相关操作。 SPI 模式下几个重要的操作命令,如下表所示: 表 SPI模式下 SD卡部分操作指令 其中 R1 的回应格式如下表所示: 更多相关参考论文设计文档资源请访问 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系 68661508 索要 表 SD卡 R1回应格式 SD 卡的典型初始化过程如下: 1) 初始化与 SD 卡连接的硬件条件( MCU 的 SPI 配置, I/O 口配置); 2) 上电延 时( 74 个 CLK); 3) 复位卡( CMD0); 4) 激活卡,内部初始化并获取卡类型( CMD1(用于 MMC卡)、 CMD5 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 来实现,具体过程如下: 1) 发送 CMD24; 2) 接收卡响应 R1; 3) 发送写数据起始令牌 0XFE; 4) 发送数据; 5) 发送 2 字节的伪 CRC; 6) 8CLK 之后禁止片选; 更多相关参考论文设计文档资源请访问 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系 68661508 索要 第三章 软件介绍 找到 MDK 的安装文件并点击安装 ,点击之后出现界面,选择 Next:选择 ”I Agree…Licence agreement” 同意协议 , 选择安装目录,这里选择安装的目录后,点击Next 即可 , 输入邮箱之类的信息即可,点击 Next 开始安装 , 按图配置,然后点击Finish,左面会出现 keil 快捷图标。 图 31 完成安装 License 在 MDK 针对每台机会有一个 CID, copy 这个 CID 到注册 机处生成 License Key,然后再将这个 License Key 添加到 MDK 里面去注册。 右键点击左面的 MDK 快捷方式,选择 “以管理员身份运行 ”。 点击: FileLicense Management,弹出一个 License Management 界面 ,copy 界面中的 (CID): 更多相关参考论文设计文档资源请访问 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系 68661508 索要 图 32 CID 打开 目 录为 ALIENTEK 开发板资料 \软件 \\注册 下的注册机。 出现注册界面, 粘贴刚才 copy 的 cid 到 CID 一栏,然后 Target 选择 ARM 图 33 注册 机 选择好之后点击 “Generate”,下面的空白栏会生成一个 License Key,类似:D0DY830KAK0N8AMX9Z14A2NWPJ3LZZ , copy 这个 license. 将这个 License Key 粘贴到 Keil 的 License Management 界面的 New License Id 更多相关参考论文设计文档资源请访问 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系 68661508 索要 Code 一栏,然后点击 “Add LIC”,添加成功后会出现成功提示。 然后点击 Close 关闭这个界面即可。 图 34 粘贴 License Key 新建工程 回到 MDK 主界面,可以看到工程中有一个默认的工程,点击这个工程名字,然后选择菜单 ProjectClose Project,就关闭掉这个工程了 , 这样整个 MDK 就是一个空的了,接下来我们将建立我们的工程模版。 在建立工程之前,我们建议用户在电脑的某个目录下面建立一个文件夹,后面所建立的工程都可以放在这个文件夹下面,这里我们建立一 个文件夹为 : STM32Projects. 点击 Keil 的菜单: Project –New Uvision Project ,然后将目录定位到刚才建立的文件夹 STM32Projecst 之下,在这个目录下面建立子文件夹 Tempalte,然后定位到Template 目录下面,我们的工程文件就都保存到 Template 文件夹下面。 工程命名为Template,点击保存。 接下来会出现一个选择 Device 的界面,就是选择我们的芯片型号,这里我们定位到 STMicroelectronics 下面的 STM32F103RB。 更多相关参考论文设计文档资源请访问 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系 68661508 索要 ‘ 图 35 选择芯片型号 弹出对话框 “Copy STM32 Startup Code to project ….” ,询问是否添加启动代码到我们的工程中,这里我们选择 “否 ”,因为我们使用的 ST 固件库文件已经包含了启动文件。 可以看到工程建立了,我们回到 Template 目录下面,可以看到只有三个文件: 图 36 Template目录下的文件 接下来,我们在 Template 工程目录下面,新建 3 个文件夹 CORE, USER, STM32F10x_FWLib。 USER 用 来 放 我 们主 函 数文 件 , 以 及 其 他包 括 等等, CORE 用来存放启动文件等, STM32F10x_FWLib 文件夹顾名思义用来存放 ST 官方提供的库函数源码文件。 更多相关参考论文设计文档资源请访问 本参考设计材料,包含项目源代码,屏幕录像指导、项目运行截图、项目设计说明书、任务书、报告书以及文献参考翻译等,完整的设计文件及源代码,资料请联系 68661508 索要 图 37 Template工程目录下新建的文件 下面我们要将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。 打开官方固件库包,定位到我们之前准备好的固件库包的目录 \Libraries\STM32F10x_StdPeriph_Driver 下面, 将目录下面的 src,inc 文件夹 copy到我们刚才建立的 STM32F10x_FWLib 文件夹下面。 src 存放的是固件库的 .c 文件, inc 存放的是对应的 .h 文件,您不妨打开这两个文件目录过目一下里面的文件,每个外设对应一个 .c 文件和一个 .h 头文件。 图 38 STM32F10x_StdPeriph_Driver 文件 下面我们要将固件库包里面相关的启动文件复制到我们的工程目录 CORE 之下。 打开官方固件库包,定位到目录 \Libraries\CMSIS\CM3\CoreSupport 下面,将文件 和文件 复制到 CORE 下面去。 然后定位到目录\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下面,将里面所有的文件同样复制到 CORE 下面。 这里我们解释一下,其实我们只用到 arm目录下面的 文件,这个文件是针对中等容量芯片的启动文件。 其他两个主要的为 为小容量, 为大容量芯片的启动文件。 这里 copy 进来是方便其他开发者使用小容量或者大容量芯片的用户。 现在看看我们的 CORE 文件夹下面的文件: 图 39 CORE文件夹内 定位到目录: \Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。