欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于ARMCPU的大容量存储器的开发和应用.doc

    • 资源ID:879948       资源大小:3.77MB        全文页数:28页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于ARMCPU的大容量存储器的开发和应用.doc

    1、 基于ARMCPU的大容量存储器的开发和应用 摘 要 随着信息技术的飞速发展,在各行各业,计算机及其它电子产品发挥着越来越重要的作用,消费类的电子产品也越来越普及,人们对于不同设备的存储容量的要求也逐渐提高,这些需求给数据存储系统的发展带来了更多的机遇和挑战。本文针对这一需求,基于STM32开发板实现了对大容量存储器的读写。本系统包含硬件设计和软件设计两个部分。硬件部分选用的是ALIENTKE MiniSTM32开发板,ALIENTKE MiniSTM32是采用ARM Cortex-M3内核的32位处理器。在此微处理器基础上,软件部分是按照FatFs文件系统,FatFs文件系统提供了底层的磁盘

    2、I/O接口函数以及应用程序接口函数,调用这些函数,实现了对硬件系统的初始化、以及SPI方式对SD存储卡进行读写的程序设计。本次课题研究,通过在STM32开发板平台,实现对SD卡的读写,验证该系统具有比较高的可靠性和稳定性,是对大容量存储器开发和应用研究的前奏。SD卡实现大容量存储,其应用领域越来越广泛。本课题通过在ALIENTKE MiniSTM32开发板上实现SD卡的读写,是有实际意义的。关键词:STM32开发板,ARM Cortex-M3,FatFs文件系统,SD卡 目 录第一章 绪论11.1 引言11.2 大容量存储器的发展现状11.3 论文内容安排2第二章 系统总体设计概述32.1 系

    3、统硬件需求分析32.1.1 硬件框架图32.1.2 主要的硬件模块包括32.2 系统软件需求分析42.2.1 软件框架图42.2.2 FatFs文件系统函数4第三章 系统硬件设计实现63.1 ALIENTEK MiniSTM32开发板介绍63.1.1 ALIENTEK MiniSTM32开发板实物图63.1.2 ALIENTEK MiniSTM32开发板核心芯片73.1.3 ALIENTEK MiniSTM32开发板的特点73.1.4 ALIENTEK MiniSTM32开发板板载资源73.2 SD卡模块83.2.1 SD卡简介83.2.2 SD卡特性83.2.3 SD卡的引脚93.2.4 S

    4、PI模式93.2.5 开发板SD卡接口103.3 液晶模块103.3.1 液晶模块简介103.3.2 TFTLCD液晶模块特点103.3.3 液晶模块原理图113.4 键盘模块11第四章 系统软件设计实现124.1 软件设计总体描述124.1.1 程序框架图124.1.2 程序结构图124.2 FatFs文件系统134.2.1 FatFs简介134.2.2 主要应用层子函数134.2.3 STM32时钟的初始化144.3 主程序设计15第五章 系统操作指南及实物演示175.1 系统操作指南175.2 系统实物演示18第六章 总结与展望226.1 工作总结226.2 工作展望23参考文献24致

    5、谢25第一章 绪论1.1 引言很多嵌入式系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合嵌入式系统的莫过于SD卡了。SD卡作最常见的存储设备,是很多数码设备的存储媒介,比如数码相框、数码相机、MP5等。它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,有几种体积的尺寸可供选择(标准的SD卡尺寸,以及TF卡尺寸),能满足不同应用的要求。只需要4个IO口,就可以外扩一个最大达32GB以上的外部存储器,容量选择尺度很大,更换也很方便,而且方便移动,编程也比较简单,是嵌入式系统大容量外部存储器的首选。ALIENTKE

    6、MiniSTM32是基于ARM Cortex-M3内核的32位处理器,具有杰出的功耗控制以及众多的外设,最重要的是其性价比,它具有价格低、功能强、使用简单、开发方便等几个很有利的优势。ALIENTKE MiniSTM32开发板就带有SD卡接口,利用STM32自带的SPI接口,最大通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。有了它,开发板就相当于拥有了一个大容量的外部存储器。结合实际需要和ALIENTKE MiniSTM32开发板的特点,本文提出了基于ALIENTKE MiniSTM32的大容量存储器的开发和引用。1.2 大容量存储器的发展现状在随着信息技术的日益创

    7、新,大容量存储器的开发和应用在国内外的发展也非常迅速。在军事、高科技的应用领域,大容量存储器已经广泛应用到航天、航空及军事领域中,速率可达到几百兆波特率以上,在民用领域中,信息存储在计算机所能识别的各种介质中,随之而来的也有相当一些存储介质能够被手机、数码相机等一些常用电子产品所识别,因此信息的数字化是大势所趋。目前, 各国正在积极研制开发大容量存储器。在大容量存储器的研究方面涌现出各种各样的新技术。目前,最引人注目的大容量存储器技术主要有:(1)、全息存储技术:以南开大学光子学中心博士生导师许京军为项目主持人的课题组利用他们在晶体生长方面的优势, 优化改良掺铁铌酸锂晶体,开发出高性能三维全息

    8、光存储材料双掺铁铌酸锂晶体。其存储容量将比现有存储器的存储容量高1 000 多倍, 信息转移速率也比现有存储器高几千倍。(2)、电子束存储技术: 普林斯顿大学的研究人员开发了一种新型的CD, 它的容量是目前光盘的800 倍。(3)、大容量非易失性存储技术:采用1T 1C 单元存储器技术, 比传统的2T 2C 单元技术, 其容量加倍。(4)、相变存储技术:相变存储技术与铁氧体存储技术相比, 存储密度更大。(5)、光学只读存储技术。(6)、MCM技术。(7)、GMR 技术:是GMR 磁头使用了磁阻效应更好的材料和多层薄膜结构,可以实现更高的存储密度。虽然这些技术的取得实现了存储器的大容量存储,但是

    9、同时也带来了许多问题。比如成本高、体积大、使用不方便、稳定性差、不易携带等等缺点。目前尚在研究阶段,还没有广泛应用,未能形成模块化、标准化的通用产品,从而无法满足用户不断增长的需要。SD卡拥有高存储容量、快速数据传输率、极大的移动灵活性以及很好的安全性。它是一体化固体介质,由于其没有任何移动部分,因而不用担心机械运动的损坏。SD卡的结构不仅能保证数字文件传送的安全性,而且易于重新格式化。正是由于SD拥有这些显著的优点,所以其应用领域越来越广泛。本课题结合这一实际,基于STM32设计并实现了SD卡大容量存储。1.3 论文内容安排第一章 绪论,主要包括三个部分。首先是引言,说明论文的主题和所要研究

    10、的方向,然后是课题的研究现状,论述本课题的起因、背景及相关领域简要历史回顾,最后介绍了论文内容安排。第二章 系统总体设计概述,从两个方面来展开,第一部分是系统硬件需求分析,从总体上描述系统硬件的总体结构,以及涉及毕设的主要硬件模块。第二部分是系统软件需求分析,和硬件的结构一样,也是从总体上描述软件设计结构,以及FatFs文件系统的基本函数描述。第三章 系统硬件设计实现,首先介绍ALIENTEK MiniSTM32开发板,这是设计实现的总平台,也是本次设计的核心,从四个方面来介绍开发板,开发板实物图,开发板核心芯片,开发板的特点和开发板板载资源来详细介绍ALIENTEK MiniSTM32开发板

    11、。接着是详细讲述与本课题关联的各个模块的内容,例如SD卡模块、液晶模块、键盘模块等。第四章 系统软件设计实现,首先描述了系统软件设计的程序框架图和程序结构图,从总体上把握软件设计的结构。然后阐述了FatFs文件系统的结构和特点,重点介绍了涉及本系统主要的文件系统应用函数,以调用库函数的显示来完成本次毕设的软件设计,还描述了STM32时钟配置函数。最后讲述的主程序是怎么设计的。是以文字的形式来表述,清晰明了。第五章 分两个部分,第一部分是系统操作指南,用流水线的图示来描述系统是如何操作的,和一般电子产品的使用指南类似。第二部分是系统实物演示,以图片的形式展现,更加直观说明本设计系统实现的效果。第

    12、六章 总结和展望,回顾了做毕业设计的整个过程,对整个课题的内容以及系统的功能特点进行总结,并对相关问题和未来工作进行展望。第二章 系统总体设计概述本章简要介绍基于ALIENTEK MiniSTM32开发板SD卡读写的硬件总体设计以及相关软件总体设计。2.1 系统硬件需求分析本课题基于ARMCPU的大容量存储器的开发和应用。为了实现存储器的读写操作,基于STM32具有价格低、功能强、使用简单、开发方便等几个很有利的优势,本课题选用了ALIENTEK MiniSTM32开发板。2.1.1 硬件框架图TFTLCD液晶模块(读取的文件显示在液晶上)STM32F103RBT6(ARM开发板)SD卡模块(

    13、实现SD卡的读写)按键模块(方便读取文件内容) 图2-12.1.2 主要的硬件模块包括(1)STM32F103RBT6:ALIENTEK MiniSTM32开发板的核心芯片,型号为STM32F103RBT6。该芯片具有20K SRAM、128K FLASH、3个普通的16位定时器、一个16位的高级定时器、2个SPI、2个IIC、3个串口、1个USB、1个CAN、2个12位的ADC、51个通用IO口。(2)SD卡模块:ALIENTKE MiniSTM32开发板就带有SD卡接口,利用STM32自带的SPI接口,最大通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。(3)液晶

    14、模块: ALIENTEK MiniSTM32开发板载有目前比较通用的液晶显示模块接口,还有其比较有特色的兼容性接口,不仅支持2.4、2.8寸的TFTLCD,还支持OLED显示器。本课题使用TFTLCD液晶模块。(4)按键模块:ALIENTEK MiniSTM32开发板上共有四个按键,分别是复位按键、WK_UP按键、两个普通按键。这里复位按键用于复位STM32,还具有复位液晶的功能,WK_UP按键与两个普通按键一起做为普通按键输入使用。2.2 系统软件需求分析FatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI

    15、 C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80, 68K 等等,而不需要做任何修改。本课题采用FatFs文件系统来实现SD卡的读写。2.2.1 软件框架图Low level 第三款 I/O(SD、ATA、USB、NAND)RTCDisk I/O InterfaceApplication Interface 图2-22.2.2 FatFs文件系统函数在主函数中通过调用应用层函数来实现SD卡读写,但是FatFs模块完全与磁盘I/O层分开,因此需要由底层函数来实现底层物理磁盘的读写与获取当前时间

    16、。(1)应用层函数: f_mount - 注册/注销一个工作区域(Work Area) f_open - 打开/创建一个文件f_close - 关闭一个文件 f_read - 读文件f_write - 写文件 f_lseek - 移动文件读/写指针 f_truncate - 截断文件 f_sync - 冲洗缓冲数据 Flush Cached Data f_opendir - 打开一个目录 f_readdir - 读取目录条目 f_getfree - 获取空闲簇 Get Free Clusters f_stat - 获取文件状态 f_mkdir - 创建一个目录 f_unlink - 删除一个文

    17、件或目录 f_chmod - 改变属性(Attribute) f_utime - 改变时间戳(Timestamp) f_rename - 重命名/移动一个文件或文件夹 f_mkfs - 在驱动器上创建一个文件系统 f_forward - 直接转移文件数据到一个数据流f_gets - 读一个字符串 f_putc - 写一个字符 f_puts - 写一个字符传 f_printf - 写一个格式化的字符磁盘I/O接口 (2)底层函数disk_initialize - Initialize disk drive 初始化磁盘驱动器 disk_status - Get disk status 获取磁盘状态

    18、 disk_read - Read sector(s) 读扇区 disk_write - Write sector(s) 写扇区 disk_ioctl - Control device dependent features 设备相关的控制特性 get_fattime - Get current time 获取当前时间第三章 系统硬件设计实现3.1 ALIENTEK MiniSTM32开发板介绍3.1.1 ALIENTEK MiniSTM32开发板实物图ALIENTEK MiniSTM32开发板是一款迷你型的开发板,小巧而不小气,简约而不简单。 它的外观尺寸只有8cm*10cm大小。开发板实物图

    19、如图3-1所示:TFTLCD液晶模块接口主芯片接口SD卡模块按键模块图3-13.1.2 ALIENTEK MiniSTM32开发板核心芯片ALIENTEK MiniSTM32选择的是STM32F103RBT6作为MCU,STM32F103的型号众多,我们选择这款的原因是看重其性价比,作为一款低端开发板,选择STM32F103RBT6是最佳的选择。128K FLASH、20K SRAM、2个SPI、3个串口、1个USB、1个CAN、2个12位的ADC、RTC、51个可用IO脚。STM32F103RBT6原理图如图3-2所示:图3-23.1.3 ALIENTEK MiniSTM32开发板的特点小巧

    20、:整个板子尺寸为8cm*10cm*2cm(包括液晶,但不计算铜柱的高度)。灵活:板上除晶振外的所有的IO口全部引出,特别还有GPIOA和GPIOB的IO口是按顺序引出的,可以极大的方便大家扩展及使用,另外板载独特的一键下载功能,避免了频繁设置B0、B1带来的麻烦,直接在电脑上一键下载。资源丰富:板载十多种外设及接口,可以充分挖掘STM32的潜质。3.1.4 ALIENTEK MiniSTM32开发板板载资源MiniSTM32开发板的板载资源是很丰富的CPU:STM32F103RBT6,LQFP64,FLASH:128K,SRAM:20K;1个标准的JTAG/SWD调试下载口1个电源指示灯(蓝色

    21、)2个状态指示灯(DS0:红色,DS1:绿色)1个红外接收头,配备一款小巧的红外遥控器1个IIC接口的EEPROM芯片,24C02,容量256字节1个SPI FLASH芯片,W25X16,容量为2M字节1个DS18B20/DS1820温度传感器预留接口1个标准的2.4/2.8寸LCD接口,支持触摸屏1个OLED模块接口1个USB串口,可用于程序下载和代码调试1个USB SLAVE接口,用于USB通信1个SD卡接口1个PS/2接口,可外接鼠标、键盘1组5V电源供应/接入口1组3.3V电源供应/接入口1个启动模式选择配置接口2个2.4G无线通信接口(24L01和JF24C)1个RTC后备电池座,并

    22、带电池1个复位按钮,可用于复位MCU和LCD3个功能按钮,其中WK_UP兼具唤醒功能1个电源开关,控制整个板的电源独创的一键下载功能除晶振占用的IO口外,其余所有IO口全部引出,其中GPIOA和GPIOB按顺序引3.2 SD卡模块3.2.1 SD卡简介SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容

    23、量、快速数据传输率、极大的移动灵活性以及很好的安全性。3.2.2 SD卡特性容量:32MB/64MB/128MB/256MB/512MB/1GByte 兼容规范版本1.01 卡上错误校正支持CPRM 两个可选的通信协议:SD模式和SPI模式可变时钟频率025MHz 通信电压范围:2.0-3.6V 工作电压范围:2.0-3.6V 低电压消耗:自动断电及自动睡醒,智能电源管理无需额外编程电压 卡片带电插拔保护 正向兼容MMC卡高速串行接口带随即存取 支持双通道闪存交叉存取 快写技术:一个低成本的方案,能够超高速闪存访问和高可靠数据存储 最大读写速率:10Mbyte/s 最大10个堆叠的卡(20MH

    24、z,Vcc=2.7-3.6V) 数据寿命:10万次编程/擦除CE和FCC认证PIP封装技术尺寸:24mm宽32mm长1.44mm厚3.2.3 SD卡的引脚SD卡的引脚排序如下图所示:图3-3SD卡引脚功能描述如下表所示:3.2.4 SPI模式本系统采用SPI模式SPI模式下几个重要的操作命令,如下表所示:命令参数回应描述CMD0(0X00)NONER1复位SD卡CMD9(0X09)NONER1读取卡特定数据寄存器CMD10(0X0A)NONER1读取卡标志数据寄存器CMD16(0X10)块大小R1设置块大小(字节数)CMD17(0X11)地址R1读取一个块的数据CMD24(0X18)地址R1写

    25、入一个块的数据CMD41(0X29)NONER1引用命令的前命令CMD55(0X37)NONER1开始卡的初始化CMD59(0X3B)仅最后一位有效R1设置CRC开启(1)或关闭(0)3.2.5 开发板SD卡接口ALIENTEK MiniSTM32开发板载有标准的SD卡接口,有了这个接口,我们就可以外扩大容量存储设备,可以用来记录数据。其原理图如下: 图3-4SD卡使用的是SPI模式通信,SD卡的SPI接口连接到STM32的SPI1上,SD_CS接在PA3上,ALIENTEK MiniSTM32开发板上的SPI1总共由4个外设共用,他们分别是:SD卡、NRF24L01无线模块、JF24C无线模

    26、块和W25X16。他们可以通过不同的片选信号来分时复用。3.3 液晶模块3.3.1 液晶模块简介TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。3.3.2 TFTLCD液晶模块特点ALIENTEK TFTLCD模块,该模块有如下特点:(1)2.4/2.8

    27、两种大小的屏幕可选。(2)320240的分辨率。(3)16位真彩显示。(4)自带触摸屏,可以用来作为控制输入。(5)通用的接口,除了ALIENTEK MiniSTM32开发板,该液晶模块还可以使用在优异特、STMSKY、红牛等开发板上。本设计使用液晶模块采用的是显尚光电的DST2001PH TFTLCD,DST2001PH的控制器为ILI9320,采用26万色的TFTLCD屏,分辨率为320240,采用16位的80并口。3.3.3 液晶模块原理图ALIENTEK MiniSTM32开发板载有目前比较通用的液晶显示模块接口,还有其比较有特色的兼容性接口,不仅支持2.4、2.8寸的TFTLCD,还

    28、支持OLED显示器。其原理图如下: 图3-53.4 键盘模块KEY0和KEY1用作普通按键输入,分别连接在PA13和PA15上,他们都连接在了JTAG相关的引脚上(KEY0还连接在SWDIO上),这样,在使用KEY0和KEY1的时候,就不能使用JTAG来调试了。KEY0和KEY1还和PS/2的DAT和CLK线共用,他们都通过JTAG的上拉电阻来提供上拉。WK_UP按键连接到PA0(STM32的WKUP引脚),它除了可以用作普通输入按键外,还可以用作STM32的唤醒输入。这个按键是高电平触发的。图3-6第四章 系统软件设计实现4.1 软件设计总体描述4.1.1 程序框架图 图4-14.1.2 程

    29、序结构图Main初始化init(k=0)扫描键盘,判断keyKEY1键 KEY2键 wake-up wake-up wake-up wake-up wake-upf-opendirf-readdir 读取文件目录f-read读取文件2内容f-read读取文件1内容f-open 创建新文件K-K+检测SD卡 (k=1) (k=2) (k=3) (k=4) (k=5) YesNo提示检测不到SD卡SD卡检测成功,显示目录 4.2 FatFs文件系统4.2.1 FatFs简介FatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写

    30、遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM, Z80, 68K 等等,而不需要做任何修改。特点 :Windows兼容的FAT文件系统不依赖于平台,易于移植代码和工作区占用空间非常小4.2.2 主要应用层子函数(1)f_mount在FatFs模块上注册/注销一个作区(文件系统对象) FRESULT f_mount (BYTE Drive, /* 逻辑驱动器号 */FATFS* FileSystemObject /* 工作区指针 */);(2)f_open 创建/打开一个用于访问文件的文

    31、件对象FRESULT f_open ( FIL* FileObject, /* 空白文件对象结构指针 */ const XCHAR* FileName, /* 文件名指针 */ BYTE ModeFlags /* 模式标志 */);(3)f_close 关闭一个打开的文件FRESULT f_close ( FIL* FileObject /* 文件对象结构的指针 */);(4)f_write 写入数据到一个文件FRESULT f_write (FIL* FileObject, /* 文件对象结构的指针 */const void* Buffer, /* 存储写入数据的缓冲区的指针 */ UINT

    32、 ByteToWrite, /* 要写入的字节数 */UINT* ByteWritten /* 返回已写入字节数变量的指针 */);(5)f_opendir打开一个目录FRESULT f_opendir ( DIR* DirObject, /* 空白目录对象结构的指针 */ const XCHAR* DirName /* 目录名的指针 */);(6)f_readdir读取目录项FRESULT f_readdir ( DIR* DirObject, /* 指向打开的目录对象结构的指针 */ FILINFO* FileInfo /* 指向文件信息结构的指针 */);4.2.3 STM32时钟的初始

    33、化ALIENTEK MiniSTM32开发板已经外接了一个8MHz的晶振,因此将采用HSE时钟,在MDK编译平台中,程序的时钟设置参数流程如下:(1) 将RCC寄存器重新设置为默认值:RCC_DeInit;(2) 打开外部高速时钟晶振HSE: RCC_HSEConfig(RCC_HSE_ON);(3) 等待外部高速时钟晶振工作: HSEStartUpStatus = RCC_WaitForHSEStartUp();(4) 设置AHB时钟(HCLK):RCC_HCLKConfig;(5) 设置高速AHB时钟(APB2): RCC_PCLK2Config;(6) 设置低速AHB时钟(APB1):

    34、RCC_PCLK1Config;(7) 设置PLL: RCC_PLLConfig;(8) 打开PLL: RCC_PLLCmd(ENABLE);(9) 等待PLL工作: while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET);(10) 设置系统时钟: RCC_SYSCLKConfig;(11) 判断PLL是否是系统时钟:while(RCC_GetSYSCLKSource() != 0x08);(12) 打开要使用的外设时钟:RCC_APB1PerphClockCmd().系统时钟初始化函数:void Sys_ClockConfig(void) Erro

    35、rStatus HSEStartUpStatus; RCC_DeInit();/将外设RCC寄存器重设为缺省值 RCC_HSEConfig(RCC_HSE_ON);/打开外部高速晶体振荡器 HSEStartUpStatus = RCC_WaitForHSEStartUp();/等待外部时钟稳定 if(HSEStartUpStatus = SUCCESS)/如果HSE成功起振 RCC_HCLKConfig(RCC_SYSCLK_Div1);/HCLK(AHB时钟)值等于系统时钟 RCC_PCLK1Config(RCC_HCLK_Div2);/PCLK1(APB1)=HCLK/2; PCLK1=3

    36、6MHz RCC_PCLK2Config(RCC_HCLK_Div2); RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);/PLL时钟源来自HSE,9倍频,72MHz RCC_PLLCmd(ENABLE);/启动PLL while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)=RESET);/等待PLL稳定 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/系统时钟来自PLL输出 while(RCC_GetSYSCLKSource()!=0x08);/等待系统时钟稳定 RCC_AP

    37、B2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);/打开APB2上的GPIOA,USART1时钟 delay_init(72);/延时初始化4.3 主程序设计Main函数/*/K=0系统时钟配置LCD对应的GPIO设置SPI模块设置初始化GPIOBTFTLCD初始化调用液晶函数,显示进入页面/*/条件: 键盘扫描 检测到KEY1键。结果: K+并在液晶上显示K值。/*/条件: 键盘扫描 检测到KEY2键。结果: K-并在液晶上

    38、显示K值。/*/条件: 键盘扫描 检测到Wake-up键 且k=0时。结果: SD卡初始化,如果检测不到SD卡 液晶上显示SD初始化失败;如果检测到SD卡,液晶上显示SD卡成功初始化并显示目录。/*/条件: 键盘扫描 检测到Wake-up键 且k=1时。结果: 创建或者打开一个名为“test.txt”的文件,如果文件存在,则打开;否则,创建一个新文件,并指定可以对文件进行写。/*/条件: 键盘扫描 检测到Wake-up键 且k=2时。结果: 打开SD卡目录,并显示SD卡目录下各个文件的文件名在液晶上。/*/条件: 键盘扫描 检测到Wake-up键 且k=3时。结果: 打开第一个文件的内容,并读

    39、取显示该文件的文件名和文件内容在液晶屏上。/*/条件: 键盘扫描 检测到Wake-up键 且k=4时。结果: 打开第二个文件的内容,并读取显示该文件的文件名和文件内容在液晶屏上。/*/条件: 键盘扫描 检测到Wake-up键 且k=5时。结果: 打开第三个文件的内容,并读取显示该文件的文件名和文件内容在液晶屏上。/*/如此往下循环第五章 系统操作指南及实物演示5.1 系统操作指南操作界面说明Wake-up OK KEY1 ADDKEY2 REDUCE开启电源菜单界面 OK键进入ADD键+OK键 进入页面1 (SD卡创建文件)进入页面2 (SD卡文件名读取目录)ADD键+OK键 ADD键+OK键

    40、 进入页面3 (第一个文件内容读取显示) ADD键+OK键 ADD键+OK键 进入页面4 (第二个文件内容读取显示) 注:ADD键增加页数,同时REDUCE键可以减少页数5.2 系统实物演示开机界面 按OK键 检测到没有SD卡,提示插入SD卡 插入SD卡SD卡插入后,显示菜单1、 创建一个新文件2、 读取SD卡文件目录3、 打开第1个文件4、 打开第2个文件5、 打开第3个文件ADD键(2次)+OK键第2页,没有创建文件时文件目录ADD键+OK键第3页,读取第1个文件内容ADD键+OK键第4页,读取第2个文件内容ADD键+OK键第5页,读取第3个文件内容REDUCE键(4次)+OK键 回到第1页,创建1个新文件并在其中写入内容 ADD键+OK键第2页,创建新文件后文件目录ADD键


    注意事项

    本文(基于ARMCPU的大容量存储器的开发和应用.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922