嵌入式系统设计 基于STM32的计算器设计_第1页
嵌入式系统设计 基于STM32的计算器设计_第2页
嵌入式系统设计 基于STM32的计算器设计_第3页
嵌入式系统设计 基于STM32的计算器设计_第4页
嵌入式系统设计 基于STM32的计算器设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

《嵌入式系统应用综合实践》课程设计(报告)嵌入式系统应用综合实践课程设计(报告)题目:基于STM32的计算器设计摘要电子计算器即将传统意义上的计算器进行电子化和数字化,为其减少时间误差和体积,并提供更多的扩展实用功能,从而使电子计算器的应用更加广泛。在经过资料的查找与收集后,本论文以该理念设计了一款基于STM32芯片作为核心控制器,使用Keil5平台,以C语言为基础进行软件编程的简易电子计算器,其内在TFT-LCD液晶屏进行输出,以四个按键进行输入,从而实现显示输入数据以及加减乘除运算的基本功能。通过软件程序的编写、硬件电路原理的实现、电子计算器正常工作的流程、原理图仿真实现、硬件实物的安装制作与硬件实物的调试过程,该简易电子计算器现可用于日常生活和工作中。单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活中的各个领域,电子、科技、通信、汽车、工业等。我们这次设计的科学计算器就是利用STM32单片机制作而成。为了进行大量浮点数的运算,并且能很好的支持彩屏的显示,我们选用了计算能力较强的基于Cortex-M3系列的STM32单片机作为微控制器。STM32系列是32位单片机,运算能力远比其他单片机强,基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。时钟频率高达72MHz,远远高于51、AVR等单片机。从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。关键词:STM32单片机触摸屏计算器目录TOC\o"1-3"\h\u第1章概述 第1章概述1.1课题目的与意义最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头、兽骨充当材料的,约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展。英国数学家纳皮尔发明了“纳皮尔算筹”,英国牧师奥却德发明了圆柱形对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数、指数函数和对数函数。这些计算工具为现代计算器的发展奠定了良好的基础。1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器。在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是只能做加减计算。1694年,莱布尼兹在德国将其改进成可以进行乘除的计算。此后,到了20世纪50年代末,电子计算器问世。而现在我们所说的计算器一般是指“电子计算器”,该名词由日文传入中国。计算器是能进行数学运算的手持机器,拥有集成电路芯片,结构简单,功能较弱,但由于它使用方便、操作简单、价格低廉,因而广泛运用于商业交易中,也是必备的办公用品之一。随着电子技术的飞速发展,为了进行大量的运算,电子计算器应用于各个领域,从而使电子计算器的应用更为广泛,不仅改变传统意义的手持计算器功能,使计算器支持彩屏的显示,界面更友好,可扩展性能更强,为生活和工作带来了便捷。本设计的简易电子计算器以STM32微控制器芯片作为核心控制器,由于其基于ARMCortex-M3处理器,可用于满足大部分通用型应用的需求,故选用STM32。具体需要硬件的调试以及软件程序的编写和实现来完成。1.2课题现状随着社会的不断发展科技的不断创新。计算器已在数十年间遍布千家万户对于计算器的百年历史,1946年2月15日在美国宾夕法尼亚大学世界上第一台电子计算器ENIAC正式投入了运行。在隆重的揭幕仪式上ENIAC表演了它的“绝招”在1秒钟内进行5000次加法运算,在1秒钟内进行500次乘法运算,这比当时最快的电器计算器的运算速度要抉1000多倍。全场起立欢呼科学技术进入了一个新的历史发展时期。数学家把聪明给了电子计算器,电子计算器将使数学家变得更加聪明。而且电子计算器不仅是一种工具,它与其它的工具都不相同,电子计算器是人脑的一个侧面的延伸。因为电子计算器不仅具有非凡的计算能力,速度之快令人望尘莫及而且还能够仿真人的某些思维功能按照一定的规则进行逻辑判和逻辑推理代替人的部分脑力劳动。1976年数学家凭借电子计算器去证明四色定理“依靠机器完成了人没有能够完成的事情”轰动了整个国际数学界。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器,使用ASIC设计的计算器,如使用纯软件实现的计算器等未来的智能化计算器将是我们的发展方向更希望成为应用广泛的计算工具。

第2章总体设计方案2.1设计任务基本功能:1实现基本的四则运算,并在触摸屏上显示表达式和结果。2当输入错误的表达式时,能显示出相对应的错误,提示用户纠正。扩展功能:实现小数、负数的运算。技术指标:1精确到小数点后6位。2计算的范围为-3.4×10-38~3.4×1038。3实时显示计算表达式和结果。2.2系统组成与工作原理本设计采用意法半导体基于Cortex-M3的STM32F103,意法半导体的板子具有良好的性价比、低功耗、易开发等特点,而且其体系和架构资料丰富,用它能够快速的开发出整个系统。显示屏的选择,现有的液晶显示屏的种类很多,本设计选用的是2.8寸带触摸的彩屏,分辨率为320x240,支持16位色,这个就足够本设计使用了。可把数据利用软件来进行处理,从而把数据传输到LCD液晶显示模块,实现简易电子计算器用户操作界面的显示,在开发板上可使用四个独立按键进行光标上下左右的移动,根据软件程序的设置,开发板加减乘数的计算功能。本次设计采用的设备为STM32开发板,以及keilMDK软件和C语言的编写。系统整体框图如图2.1所示。蜂鸣器电路LCD液晶显示模块STM蜂鸣器电路LCD液晶显示模块STM32复位电路串口电路复位电路串口电路简易电子计算独立按键处理模块简易电子计算独立按键处理模块电源电源图2.1系统整体框架图乘减显示结果输入第二的参数除加输入第一个参数主页面整个系统用STM32单片机作为中央控制器,由单片机执行采集内部RTC值,简易电子计算器信号通过单片机I/O传给LCD显示屏,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、LCD显示屏的显示及相关的控制功能。系统设有按键模块用于对数字进行调整。系统流程图如图2.2所示。乘减显示结果输入第二的参数除加输入第一个参数主页面图2.2系统流程图第3章硬件设计3.1嵌入式系统介绍Cortex-M3采用ARMV7构架,不仅支持Thumb-2指令集,而且拥有很多新特性。较之ARM7TDMI,Cortex-M3拥有更强劲的性能、更高的代码密度、位带操作、可嵌套中断、低成本、低功耗等众多优势。为了进行大量浮点数的运算,并且能很好的支持彩屏的显示,我们选用了计算能力较强的基于Cortex-M3系列的STM32F103ZET6作为微控制器。Cortex-M3是ARM公司研发的一个系列,针对于微控制开发领域,采用ARMv7-M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构。Thumb-2在Thumb指令集架构(ISA)上进行了大量的改进,它与Thumb相比,具有更高的代码密度并提供16/32位指令的更高性能。ARM的Cortex-M3处理器是最新一代的嵌入式ARM处理器,它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗,同时提供卓越的计算性能和先进的中断系统响应。ARM的Cortex-M3是32位的RISC处理器,提供额外的代码效率,在通常8和16位系统的存储空间上发挥了ARM内核的高性能。我们采用的意法半导体公司生产的STM32F103ZET6就是基于ARMCortex-M3内核的,具有高性能、低成本、低功耗等特点,最高主频可达72MHz,高达512K字节的闪存和64K字节的SRAM,112个GPIO端口,4个通用定时器,2个高级控制定时器,2个基本定时器,还包含标准和先进的通信接口:多达2个I2C接口、3个SPI接口、2个I2S接口、1个SDIO接口、5个USART接口、一个USB接口和一个CAN接口。STM32的优异性体现在如下几个方面:1.超低的价格。以8位机的价格,得到32位机,是STM32最大的优势。2.超多的外设。STM32拥有包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等众多外设及功能,具有极高的集成度。3.丰富的型号。STM32仅M3内核就拥有F100、F101、F102、F103、F105、F107、F207、F217等8个系列上百种型号,具有QFN、LQFP、BGA等封装可供选择。同时STM32还推出了STM32L和STM32W等超低功耗和无线应用型的M3芯片。4.优异的实时性能。84个中断,16级可编程优先级,并且所有的引脚都可以作为中断输入。5.杰出的功耗控制。STM32各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗。6.极低的开发成本。STM32的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持SWD和JTAG两种调试口。SWD调试可以为你的设计带来跟多的方便,只需要2个IO口,即可实现仿真调试。3.2主要单元电路设计3.2.1电源电路本数字简易电子计算器设计使用开发板配置的数据线与电脑USB接口直接连接进行通电,再由系统中的AMS1117-3.3稳压芯片降压到3.3V,供给单片机和触摸屏使用。作为硬件电路电源。电源电路图如图3.1所示。图3.1电源电路图3.2.2简易电子计算电路本数字简易电子计算器显示采用STM32自带RTC模块,RTC模块拥有一组连续计数的计数器,通过软件的编写,可实现简易电子计算器的功能,在系统复位或待机唤醒后,简易电子计算器电路图如图3.2所示。图3.2简易电子计算电路图3.2.3按键电路本数字简易电子计算器设计四个按键用于进行显示时间的调整,芯片的4个I/O口与开发板的独立按键直接相连,通过软件编写,芯片可控制按键的开关,以达到时间调整的要求。按键电路图如图3.3所示。图3.3按键电路3.2.4蜂鸣器电路本数字简易电子计算器设计可进行整点报时与闹铃的功能,经过软硬件的结合,由软件指使芯片控制蜂鸣器的响应。电路图如图3.4所示。图3.4蜂鸣器电路3.2.5复位电路本本数字简易电子计算器设计一个按键用于对整个程序及硬件进行重新复位的功能,以芯片与按键和其他部件组成的复位电路直接相连。复位电路图如图3.5所示。图3.5复位电路3.2.6串口电路本数字简易电子计算器所用STM32开发板支持USB下载,由USB转串口TTL电路进行自动下载控制,由此可将程序下载于开发板上。串口电路图如图3.6所示。图3.6串口电路3.2.7LCD液晶显示电路本数字简易电子计算器设计所需显示屏为TFT-LCD液晶显示屏,通过软硬件的结合,可实现计算及数字的显示。LCD液晶显示电路图如3.7所示。图3.7LCD液晶显示电路第4章软件设计4.1软件总体设计整个软件系统采用模块化思想,将TFT-LCD液晶屏和RTC实时简易电子计算器分别集成一体,使程序模块化,结构层次分明。本设计的软件系统分为五个部分:TFT-LCD显示子程序、整点闹铃子程序、电子计算器子程序和按键处理子程序。本文所设计的简易电子计算器的在系统最初开始主程序扫描,由最初的显示子程序初始化,在使用计算器计算时,需要判断当前是采用加减乘除哪种运算,在程序中通过当手指触摸到其中一个运算符号(如“+”),使用一个标识位来进行标识,然后在进行运算时候,通过这个标识位来判断是进行哪种运算。最后在运算完成之后,清除相应的标志位,以免影响下一次判断。蜂鸣器进行相应操作,之后进入按键扫描,判断按键是否有变动,并进行实现相应的功能,最后返回主程序重新一次扫描,主程序流程图如下图4.1所示。开始开始初始化初始化显示模块显示模块实时简易电子计算器实时简易电子计算器按键处理模块按键处理模块数据处理模块数据处理模块图4.1主程序流程图4.2各功能模块的软件设计4.2.1显示模块使用TFT-LCD显示屏显示,编程实现功能简洁,将RTC实时简易电子计算器的数据送入LCD中进行显示,显示内容包含背景界面,以及加减乘除等选项。显示子程序流程图如下图4.2所示。开始开始初始化初始化显示背景显示背景显示界面显示界面显示当前选项显示当前选项图4.2显示子程序流程图4.2.2按键处理模块该子程序进行按键处理的功能判断分别对加减乘除等运算法则等进行调整,在正常情况下S1和S2分别是控制界面选择的上下左右选项,而S3键位是确认当前的所选择的操作,为了方面用户使用和理解,并没有使用S4键位,该流程图如图4.3所示。NNNN按下S4键?按下S3键?按下S2键?按下S1键?开始退出N上下移动操作Y左右移动操作Y执行相应功能Y不用Y图4.3按键处理模块流程图4.2.3实时简易电子计算器万年历模块该子程序需要对加减乘除等运算过程的读写操作,在串口通信时对时序要求比较高,需保证传输的连续性,不允许出现中断,利用RTC计算两次数据的走针。如图4.4所示。图4.4电路图所示第5章系统调试5.1调试方法该论文是用STM32开发板实现软硬件的结合,分别对软件与硬件进行调试,其中硬件主要通过在开发板上进行显示电路与按键电路的调试,软件通过keilMDK进行调试。硬件调试:使用STM32开发板,为其通电,查看电源电路是否正常;成功开机后,查看显示电路是否正常;连接USB口,查看串口电路是否正常;根据时间走针判断简易电子计算器电路是否正常;通过独立按键的相应操作,查看功能是否正确,由此判断独立按键处理电路是否正常;操作复位键,查看复位电路是否正常。经过所有测试,电路均正常。软件调试:因在硬件调试中,结合软硬件,已完成显示子程序、实时简易电子计算器万年历子程序和按键处理子程序的调试,只需完成余下整点闹铃子程序的调试,通过实时简易电子计算器万年历子程序调整时间为整点前一分钟,设置成功后,等待一分钟后,判断蜂鸣器是否相应,由此判断整点闹铃子程序能否正常运行。最终经过测试,该子程序能正常运行。5.2调试结果与分析校准界面如图5.1所示,当把程序烧进板子时,会出现校准页面,经校准后才能进入计算页面。如图5.2所示进入页面后图5.1校准截面图图5.2进入截面图简单四则运算如图5.3所示。图5.3表达式运算图当输入错误的表达式时,会自动报错(error后的数字是本项目的小bug),如图5.4和图5.5所示。图5.4自动报错图图5.5自动报错图第一个问题:同时按下S1与S2按键时,无法正常使用按键解决办法:在Keil软件中的调试工具,发现在main函数中无法调用选择数字的子程序,通过函数外部调用,问题成功解决。第二个问题:从编辑框获取文本存储失败。这个问题产生的原因,是在我从编辑框内读取数据之前,有个if()语句,如满足条件,清除编辑框的内容,从而当我再次读取编辑框的内容就为空了,当然什么数据也存储不了了。第三个问题:字符串转化成浮点数和浮点数转化成字符串的问题。这两个功能都有相对的库函数<stdlib>中的相干函数可以实现,但是奇怪的是,我调用这些函数,单独直接用的时候都OK的,但是如果多几个传递参数,就完全失效了。找了N久的转化函数,统统没有用,到最后,只能自己写算法来实现,花了很多时间来写、验证、完善。第四个问题:碰到浮点数减整数,得到的小数点与原先的小数点不相等。当然如:4.2-4=0.2,但是我们定义floata=4,2,则小数为a-(int)a,得到的小数部位0.2,而是为0.1999998之列的,这里就涉及到个类型之间的转化存在丢失部分数据的问题。这是我超级郁闷的地方。想了很多种办法多没有解决。最后只能选择效果最好的一种:就是小数点=(a*100000-(int)a*100000)/100000,这种方法虽然没有本质上解决问题,但是效果好多了。如图5.6所示系统总体结构电路原理图图5.6系统总体结构电路原理图总结经过了两个星期的课程设计,完成了从理论到实践的突破,整个系统在收集了很多资料以后,完成了系统硬件的调试和程序的编写。从最开始还不知道什么是单片机到现在,也有一年多的时间了,能在这么短的时间在这个方面取得这么大的成就,自己也感到很欣慰,获得不小的成绩。随着电子技术的飞速发展,高科技产品也越来越多,生活条件也大大的改善,而单片机只是这些中的一小部分,还有很多需要我们去学习。很早之前就听说过ARM这个名词,但是还不了解,后来经过慢慢的学习,对这个ARM也越来越熟悉了,既是一个公司的名字,也是对ARM处理器的总称,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。但是ARM公司自己不生产芯片,只研究ARM内核技术,将知识产权交易给其他半导体公司生产,这一点很佩服ARM公司。全球95%以上的手机以及超过四分之一的电子设备都在使用ARM技术。ARM处理器也分为很多种,有ARM7、ARM9、ARM11、Cortex-M、Cortex-R和Cortex-A。其中Cortex-M就是针对于微控制领域,之前对这个很感兴趣,但是一直没机会学习,正好有毕业设计这个机会,就借用这个机会来进一步学习。和老师一说,就很支持我使用ARM处理器,选用了一个基于Cortex-M3的STM32F103ZET6微控制器,当时还对这个芯片还不了解,查了大量的资料,经过一个多月的摸索,慢慢熟悉了。制作这个项目最大的问题就在于硬件的制作,在硬件上卢岲老师给了我很大的帮助。由于这个微控制器的封装比较小,引脚间很密,引脚也很短,所以必须要制作印制电路板,电路板的设计都是自己完成的,但联系厂家制作印制电路板是卢岲老师帮忙完成的。第一次看到把自己设计的印制电路板做成实物出来,还是有点小成就感的。但是这个电路板在很多地方设计的有缺陷,在设计印制电路板这方面,也有很多东西要注意的,在以后的学习中继续研究。在制作完电路板后,元件的焊接又成了一大问题,自己对付一些插件、电阻、电容还是没问题的,但是那个单片机就需要一定的技术才能焊好,这个也是卢岲老师帮忙完成的。但是焊接后还是存在一些小问题。对于人机交互的界面显示也是一个重要的问题,美观的界面让人心情舒畅,但由于受自己的水平有限,界面只是几个简单的字符,都没有把彩屏的特点发挥出来,这一点需要在以后的项目中加强学习。课程设计结束了,通过设计,我深刻领会到基础的重要性,毕业设计不仅仅能帮助学生检验大学三年的学习成果,更多的是设计可以帮助我们更加清楚的认识自我,磨练学生的意志与耐性,这会为学生日后的工作和生活带来很大的帮助。参考文献[1]王丽滨,赵云鹏.基于STM32科学计算器系统的设计与实现[J].2020(07):68-69.[2]潘晓利.基于ARM的触摸计算器的设计与实现[J].甘肃科技,2019,35(23):14-15[3]徐昆良.基于AT89S52单片机的简易计算器设计与仿真[J].电脑知识与技术,2015,11(16):211-212.[4]季丽琴.基于MFC的简易计算器制作[J].智能计算机与应用,2019,9(06):269-270.[5]赵续.基于51单片机的LCD计算器设计[J].电子技术与软件工程,2018(07):256-257.[6]孙业友.船用天文定位计算器的研制[D].天津理工大学,2015.[7]JingLi.DesignofDCMotorPIDControlSystemBasedonSTM32SingleChipMicrocomputer[J].InternationalCoreJournalofEngineering,2020,6(7).[8]ChunshuXu.DesignandImplementationofIntelligentGreenhouseSystembasedonSTM32[J].InternationalCoreJournalofEngineering,2020,6(7).[9]王岩,辛妍贝.基于单片机的多功能计算器的设计与实现电气工程自动化[J].电气传动自动化,2019,41(03):64-66.[10]李广兴.基于STC12C5A60S2单片机的带时间和温度显示的多功能计算器设计[J].通讯世界,2015(20):235-237.[11]袁礼.基于单片机的多功能计算器的设计与实现[J].数码世界,2016(08):31-32.

附录主程序代码while(1) { KEY_task();//按键修改时间 Update_Date();//获取时间 Adjust_RX_Buffer();//处理来自串口的数据 get_zb=zuobiao(); get_num=getnum(); for(i=0,j=20,k=53;i<10;i++)//如果i的值等于坐标的值,则显示红色 { if(i%4==0&&i!=0) { j=20; k+=37; printf("\n"); } if(get_zb==i) { sprintf(Buff,"%d",i); GUI_CNCH16_string(j,k,(u8*)Buff,Red,White); j+=50; } else { sprintf(Buff,"%d",i); GUI_CNCH16_string(j,k,(u8*)Buff,Black,White); j+=50; } } for(i=10,j=120,k=127;i<16;i++)//5037 { if(i==12) { j=20; k+=37; printf("\n"); } switch(i) { case10:sprintf(Buff,"%c",'+');break;//在屏幕上输出字符 case11:sprintf(Buff,"%c",'-');break; case12:sprintf(Buff,"%c",'*');break; case13:sprintf(Buff,"%c",'/');break; case14:sprintf(Buff,"%c",'=');break; case15:sprintf(Buff,"%c",'c');break; } if(get_zb==i) { GUI_CNCH16_string(j,k,(u8*)Buff,Red,White);//打印换行 j+=50; } else { GUI_CNCH16_string(j,k,(u8*)Buff,Black,White); j+=50; } } }核心算法部分:intzy=0;//左右选择intsx=0;//上下选择intch;//确认按键intnum;//通过按键得到命令intn1=0;intn2=0;doublen3=0;charBuff[128]; intflag=0;intfk=0;intsum=0;voidKEY_task(void){if(S4==0)//不按下s4时,s1,s2,s3 {if(S1==0)//按下s1两个按键,分别是选择上下和左右 { Delay_nms(10); if(S1==0) { while(S1==0); if(zy>=0&&zy<3) { zy++; } else { zy=0; } } } if(!S2)//按下S2 { Delay_nms(10); if(!S2) { while(!S2); if(sx>=0&&sx<3) { sx++; } else { sx=0; } } } if(!S3)//按键选择 { Delay_nms(10); if(!S3) { while(!S3); switch((zy+sx*4)) { case0:num=0;break; case1:num=1;break; case2:num=2;break; case3:num=3;break; case4:num=4;break; case5:num=5;break; case6:num=6;break; case7:num=7;break; case8:num=8;break; case9:num=9;break; case10:num=10;break; case11:num=11;break; case12:num=12;break; case13:num=13;break; case14:num=14;break; case15:num=15;break; } if(fk==0) { flag=1; } else { flag=3; } } } } else//按下s4时 { } if(num<10&&flag==1)//输入第一个数,并显示出来 { if(n1==0) { n1=num; } else { n1=n1*10+num; } sprintf(Buff,"%d",n1); GUI_CNCH16_string(215,80,(u8*)Buff,Black,White); flag=0; } if(num>=10&&num<14)//选择运算

温馨提示

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

最新文档

评论

0/150

提交评论