《STM32嵌入式单片机原理与应用》 课件 第5章 输入输出接口GPIO_第1页
《STM32嵌入式单片机原理与应用》 课件 第5章 输入输出接口GPIO_第2页
《STM32嵌入式单片机原理与应用》 课件 第5章 输入输出接口GPIO_第3页
《STM32嵌入式单片机原理与应用》 课件 第5章 输入输出接口GPIO_第4页
《STM32嵌入式单片机原理与应用》 课件 第5章 输入输出接口GPIO_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

第5章通用输入/输出

接口GPIO本章讲述了通用输入/输出接口GPIO,包括通用输入/输出接口概述、GPIO的功能、GPIO常用库函数、GPIO使用流程、GPIO输出应用实例和GPIO输入应用实例。几乎在所有的嵌入式系统应用中,都涉及开关量的输入和输出功能,例如状态指示、报警输出、继电器闭合和断开、按钮状态读入、开关量报警信息的输入等。这些开关量的输入和控制输出都可以通过通用输入/输出接口实现。STM32F103VET6有80根多功能双向能承受5V电压的快速I/O口线。每16根口线分为一组,分别为PA、PB、PC、PD、PE。每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。5.1通用输入/输出接口概述GPIO端口的每个位都可以由软件分别配置成以下模式。1)输入浮空:浮空(floating)就是逻辑器件的输入引脚既不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平。一般实际运用时,引脚不建议悬空,易受干扰。2)输入上拉:上拉就是把电压拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻嵌位在高电平。电阻同时起限流作用。弱强只是上拉电阻的阻值不同,没有什么严格区分。3)输入下拉:就是把电压拉低,拉到GND。与上拉原理相似。4)模拟输入:模拟输入是指传统方式的模拟量输入。数字输入是输入数字信号,即0和1的二进制数字信号。5)开漏输出:输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。6)推挽式输出:可以输出高低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。7)推挽式复用功能。8)开漏复用功能。复用功能可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用I/O口使用)。每个I/O可以自由编程,而I/O口寄存器必须按32位字访问(不允许半字或字节访问)。GPIOx_BSRR和GPIOxBRR寄存器允许对任何GPIO寄存器的读/更改的独立访问,这样,在读和更改访问之间产生中断(IRQ)时不会发生危险。一个I/O口的基本结构如图5-1所示。图5-1一个I/O口位的基本结构I/O口位的基本结构包括以下几部分。包括输入数据寄存器和输入驱动器。在接近I/O引脚处连接了两只保护二极管,假设保护二极管的导通电压降为Vd,则输入到输入驱动器的信号电压范围被钳位在:Vss-Vd<Vin<Vdd+Vd

由于Vd的导通压降不会超过0.7V,若电源电压Vdd为3.3V,则输入到输入驱动器的信号最低不会低于-0.7V,最高不会高于4V,起到了保护作用。5.1.1输入通道输出通道中包括位设置/清除寄存器、输出数据寄存器、输出驱动器。要输出的开关量数据首先写入到位设置/清除存器,通过读写命令进入输出数据寄存器,然后进入输出驱动的输出控制模块。输出控制模块可以接收开关量的输出和复用功能输出。输出的信号通过由P-MOS和N-MOS场效应管电路输出到引脚。通过软件设置,由P-MOS和N-MOS场效应管电路可以构成推挽方式、开漏方式或者关闭。5.1.2输出通道5.2GPIO的功能复位期间和刚复位后,复用功能未开启,I/O口被配置成浮空输入模式。复位后,JTAG引脚被置于输入上拉或下拉模式。1)PA13:JTMS置于上拉模式。2)PA14:JTCK置于下拉模式。3)PA15:JTDI置于上拉模式。4)PB4:JNTRST置于上拉模式。当作为输出配置时,写到输出数据寄存器(GPIOx_ODR)上的值输出到相应的I/O引脚。可以以推挽模式或开漏模式(当输出0时,只有N-MOS被打开)使用输出驱动器。5.2.1普通I/O功能输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/O引脚上的数据。所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可以被激活也可以被断开。5.2.2单独的位设置或位清除当对GPIOx_ODR的个别位编程时,软件不需要禁止中断:在单次APB2写操作中,可以只更改一个或多个位。这是通过对“置位/复位寄存器”(GPIOx_BSRR,复位是GPIOx_BRR)中想要更改的位写1来实现的。没被选择的位将不被更改。所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式。5.2.3外部中断/唤醒线5.2.4复用功能(AF)使用默认复用功能前必须对端口位配置寄存器编程。1)对于复用输入功能,端口必须配置成输入模式(浮空、上拉或下拉)且输入引脚必须由外部驱动。2)对于复用输出功能,端口必须配置成复用功能输出模式(推挽或开漏)。3)对于双向复用功能,端口位必须配置复用功能输出模式(推挽或开漏)。此时,输入驱动器被配置成浮空输入模式。如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接。如果软件把一个GPIO脚配置成复用输出功能,但是外设没有被激活,那么它的输出将不确定。5.2.5软件重新映射I/O复用功能为了使不同封装器件的外设I/O功能的数量达到最优,可以把一些复用功能重新映射到其他一些引脚上。这可以通过软件配置AFIO寄存器来完成,这时,复用功能就不再映射到它们的原始引脚上了。5.2.6GPIO锁定机制锁定机制允许冻结I/O配置。当在一个端口位上执行了锁定(LOCK)程序,在下一次复位之前,将不能再更改端口位的配置。这个功能主要用于一些关键引脚的配置,防止程序跑飞引起灾难性后果。5.2.7输入配置当I/O口配置为输入时:1)输出缓冲器被禁止。2)施密特触发输入被激活。3)根据输入配置(上拉,下拉或浮动)的不同,弱上拉和下拉电阻被连接。4)出现在I/O引脚上的数据在每个APB2时钟被采样到输入数据寄存器。5)对输入数据寄存器的读访问可得到I/O状态。I/O口位的输入配置如图5-2所示。图5-2输入浮空/上拉/下拉配置5.2.8输出配置当I/O口被配置为输出时:1)输出缓冲器被激活。①开漏模式:输出寄存器上的0激活N-MOS,而输出寄存器上的1将端口置于高阻状态(P-MOS从不被激活)。②推挽模式:输出寄存器上的0激活N-MOS,而输出寄存器上的1将激活P-MOS。2)施密特触发输入被激活。3)弱上拉和下拉电阻被禁止。4)出现在I/O引脚上的数据在每个APB2时钟被采样到输入数据寄存器。5)在开漏模式时,对输入数据寄存器的读访问可得到I/O状态。6)在推挽式模式时,对输出数据寄存器的读访问得到最后一次写的值。I/O口位的输出配置如图5-3所示。图5-3输出配置5.2.9复用功能配置当I/O口被配置为复用功能时:1)在开漏或推挽式配置中,输出缓冲器被打开。2)内置外设的信号驱动输出缓冲器(复用功能输出)3)施密特触发输入被激活。4)弱上拉和下拉电阻被禁止。5)在每个APB2时钟周期,出现在I/O引脚上的数据被采样到输入数据寄存器。6)开漏模式时,读输入数据寄存器时可得到I/O口状态7)在推挽模式时,读输出数据寄存器时可得到最后一次写的值。一组复用功能I/O寄存器允许用户把一些复用功能重新映像到不同的引脚。I/O口位的复用功能配置如图5-4所示。图5-4复用功能配置I/O口位的复用功能配置如图5-4所示。5.2.10模拟输入配置当I/O口被配置为模拟输入配置时:1)输出缓冲器被禁止。2)禁止施密特触发输入,实现了每个模拟I/O引脚上的零消耗。施密特触发输出值被强置为0。3)弱上拉和下拉电阻被禁止。4)读取输入数据寄存器时数值为0。I/O口位的高阻抗模拟输入配置如图5-5所示。图5-5高阻抗的模拟输入配置5.3GPIO常用库函数STM32标准库中提供了几乎覆盖所有GPIO操作的函数,如表5-1所示。为了理解这些函数的具体使用方法,下面对标准库中的函数做详细介绍。GPIO操作的函数一共有17个,这些函数都被定义在stm32f10x_gpio.c中,使用stm32f10x_gpio.h头文件。表5-1GPIO函数库主要功能高级控制定时器GPIO_DeInit将外设GPIOx寄存器重设为缺省值GPIO_AFIODeInit将复用功能(重映射事件控制和EXTI设置)重设为缺省值GPIO_Init根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器GPIO_StructInit把GPIO_InitStruct中的每一个参数按缺省值填入GPIO_ReadInputDataBit读取指定端口引脚的输入GPIO_ReadInputData读取指定的GPIO端口输入GPIO_ReadOutputDataBit读取指定端口引脚的输出GPIO_ReadOutputData读取指定的GPIO端口输出主要功能高级控制定时器GPIO_SetBits设置指定的数据端口位GPIO_ResetBits清除指定的数据端口位GPIO_WriteBit设置或清除指定的数据端口位GPIO_Write向指定GPIO数据端口写入数据GPIO_PinLockConfig锁定GPIO引脚设置寄存器GPIO_EventOutputConfig选择GPIO引脚用作事件输出GPIO_EventOutputCmd使能或者失能事件输出GPIO_PinRemapConfig改变指定引脚的映射GPIO_EXTILineConfig选择GPIO引脚用作外部中断线路表5-1GPIO函数库(续表)1.GPIO_Delnit函数函数名:GPIO_DeInit。函数原型:voidGPIO_DeInit(GPIO_TypeDef*GPIOx)。功能描述:将GPIOx外设寄存器重设为它们的默认值。输入参数:GPIOx:x可以是(A..G)来选择GPIO外设。输出参数:无。返回值:无。例如:/*重置GPIOA外设寄存器为默认值*/GPIO_DeInit(GPIOA);2.GPIO_AFIODelnit函数函数名:GPIO_AFIODeInit。函数原型:voidGPIO_AFIODeInit(void)。功能描述:将复用功能(重映射时间控制和EXTI配置)重设为默认值。输入参数:无。输出参数:无。返回值:无。例如:/*复用功能寄存器复位为默认值*/GPIO_AFIODeInit();3.GPIO_Init函数函数名:GPIO_Init。函数原型:voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)。功能描述:根据GPIOInitStruct中指定已赋值初始化外设GPIOx寄存器。输入参数1:GPIOx,x可以是(A..G)来选择外设。输入参数2:GPIO_InitStruct,指向结构GPIO_InitTypeDef的指针,包含了外设GPIO的配置信息。输出参数:无。返回值:无。例如:/*配置所有的GPIOA引脚为输入浮动模式*/GPIO_InitTypeDef

GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_ALL;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);其中,GPIO_InitTypeDef是结构体。GPIO_InitTypeDef定义于文件stm32f10x_gpio.h:

typedef

struct{uint16_tGPIO_Pin;GPIOSpeed_TypeDef

GPIO_Speed;GPIOMode_TypeDef

GPIO_Mode;}GPIO_InitTypeDef;GPIO_Pin参数用于选择待设置的GPIO引脚,使用操作符“∣”可以一次选中多个引脚。可以使用下面的任意组合。GPIO_Pin定义于文件stm32f10x_gpio.h:#defineGPIO_Pin_0((uint16_t)0x0001)/*!<PinOselected*/#defineGPIO_Pin_1((uint16_t)0x0002)/*!<Pin1selected*/#defineGPIO_Pin_2((uint16_t)0x0004)/*!<Pin2selected*/#defineGPIO_Pin_3((uint16_t)0x0008)/*!<Pin3selected*/#defineGPIO_Pin_4((uint16_t)0x0010)/*!<Pin4selected*/#defineGPIO_Pin_5((uint16_t)0x0020)/*!<Pin5selected*/#defineGPIO_Pin_6((uint16_t)0x0040)/*!<Pin6selected*/#defineGPIO_Pin_7((uint16_t)0x0080)/*!<Pin7selected*/#defineGPIO_Pin_8((uint16_t)0x0100)/*!<Pin8selected*/#defineGPIO_Pin_9((uint16_t)0x0200)/*!<Pin9selected*/#defineGPIO_Pin_10((uint16_t)0x0400)/*!<Pin10selected*/#defineGPIO_Pin_11((uint16_t)0x0800)/*!<Pin11selected*/#defineGPIO_Pin_12((uint16_t)0x1000)/*!<Pin12selected*/#defineGPIO_Pin_13((uint16_t)0x2000)/*!<Pin13selected*/#defineGPIO_Pin_14((uint16_t)0x4000)/*!<Pin14selected*/#defineGPIO_Pin_15((uint16_t)0x8000)/*!<Pin15selected*/#defineGPIO_Pin_A11((uint16_t)0xFFEF)/*!<Allpinsselected*/GPIO_Speed用于设置选中引脚的速率。typedefenum{GPIO_Speed_10MHz=1,/*最高输出速率10MHz*/GPIO_Speed_2MHz,/*最高输出速率2MHz*/GPIO_Speed_50MHz/*最高输出速率50MHz*/}GPIOSpeed_TypeDef;GPIO_Mode用于设置选中引脚的工作状态。typedefenun{GPIO_Mode_AIN=0x0,/*模拟输入*/GPIO_Mode_IN_FLOATING=0x04,/*浮空输入*/GPIO_Mode_IPD=0x28,/*下拉输入*/GPIO_Mode_IPU=0x48,/*上拉输入*/GPIO_Mode_Out_OD=0x14,/*开漏输出*/GPIO_Mode_Out_PP=0x10,/*推挽输出*/GPIO_Mode_AF_OD=0x1C,/*复用开漏输出*/GPIO_Mode_AF_PP=0x18/*复用推挽输出*/}GPIOMode_TypeDef;4.GPIO_Structlnit函数函数名:GPIO_StructInit。函数原型:voidGPIO_StructInit(GPIO_InitTypeDef*GPIO_InitStruct)。功能描述:把GPIO_InitStruct中成员设置为它的默认值。输入参数:GPIO_InitStruct,一个GPIO_InitTypeDef结构体指针,指向待初始化的GPIO_InitTypeDef结构体。输出参数:无。返回值:无。例如:/*使GPIO的参数设置为初始化参数初始化结构*/GPIO_InitTypeDefGPIOInitStructure;GPIO_StructInit(&GPIO_InitStructure);其中,GPIO_InitStruct默认值为:GPIO_Pin

GPIO_Pin_ALLGPIO_SpeedGPIO_Speed_2MHzGPIO_Mode

GPIO_Mode_IN_FLOATING5.GPIO_ReadinputDataBit

函数函数名:GPIO_ReadInputDataBit。函数原型:u8GPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,u16GPIO_Pin)。功能描述:读取指定端口引脚的输入。输入参数1:GPIOx,x可以是(A..G),来选择外设。输入参数2:GPIO_Pin,读取指定的端口位,这个参数的值是GPIO_Pin_x,其中x是(0..15)。输出参数:无。返回值:输入端口引脚值。例如:/*读出PB5的输入数据并将它存储在变量ReadValue中*/u8ReadValue;ReadValue=GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5);6.GPIO_ReadlnputData

函数函数名:GPIO_ReadInputData。函数原型:u16GPIO_ReadInputData(GPIO_TypeDef*GPIOx)。功能描述:读取指定端口的输入值。输入参数:GPIOx,x可以是(A..G),来选择外设。输出参数:无。返回值:GPIO端口输入值。例如:/*读出GPIOB端口的输入数据并将它存储在变量ReadValue中*/u16ReadValue;ReadValue=GPIO_ReadInputData(GPIOB);7.GPIO_ReadOutputDataBit函数函数名:GPIO_ReadOutputDataBit。函数原型:u8GPIO_ReadOutputDataBit(GPIO_TypeDef*GPIOx,u16GPIO_Pin)。功能描述:读取指定端口引脚的输出。输入参数1:GPIOx:x可以是(A..G),来选择外设。输入参数2:GPIO_Pin:读取指定的端口位,这个参数的值是GPIO_Pin_x,其中x是(0..15)。输出参数:无。返回值:输出端口引脚值。例如:/*读出PB5的输出数据并将它存储在变量ReadValue中*/u8ReadValue;ReadValue=GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_5);8.GPIO_ReadOutputData函数函数名:GPIO_ReadOutputData。函数原型:u16GPIO_ReadOutputData(GPIO_TypeDef*GPIOx)。功能描述:读取指定GPIO端口的输出值。输入参数:GPIOx,x可以是(A..G),来选择外设。输出参数:无。返回值:GPIO端口输出值。例如:/*读出GPIOB的输出数据并将它存储在变量ReadValue中*/u16ReadValue;ReadValue=GPIO_ReadOutputData(GPIOB);9.GPIO_SetBits函数函数名:GPIO_SetBits。函数原型:voidGPIO_SetBits(GPIO_TypeDef*GPIOx,u16GPIO_Pin)。功能描述:设置指定的GPIO端口位。输入参数1:GPIOx,x可以是(A..G),来选择外设。输入参数2:GPIO_Pin,待设置的端口位,这个参数的值是GPIO_Pin_x,其中x是(0..15)。输出参数:无。返回值:无。例如:/*设置GPIOB端口的PB5和PB9引脚*/GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_9);10.GPIO_ResetBits

函数函数名:GPIO_ResetBits。函数原型:voidGPIO_ResetBits(GPIO_TypeDef*GPIOx,u16GPIO_Pin)。功能描述:清除指定的GPIO端口位。输入参数1:GPIOx,x可以是(A..G),来选择外设。输入参数2:GPIO_Pin,待清除的端口位,这个参数的值是GPIO_Pin_x,其中x是(0..15)。输出参数:无。返回值:无。例如:/*清除GPIOB端口的PB5和PB9引脚*/GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_9);11.GPIO_WriteBit

函数函数名:GPIO_WriteBit。函数原型:voidGPIO_WriteBit(GPIO_TypeDef*GPIOx,u16GPIO_Pin,BitAction

BitVal)。功能描述:设置或清除指定的GPIO端口位。输入参数1:GPIOx,x可以是(A..G),来选择外设。输入参数2:GPIO_Pin,待设置或清除的端口位,这个参数的值是GPIO_Pin_x,其中x是(0..15)。输入参数3:BitVal,指定待写入的值,该参数是BitAction枚举类型,取值必须是:BitRESET,清除端口位,或者Bit_SET,设置端口位。输出参数:无。返回值:无。例如:/*设置GPIOB端口的PB5引脚*/GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_SET);12.GPIO_Write

函数函数名:GPIO_Write。函数原型:voidGPIO_Write(GPIO_TypeDef*GPIOx,u16PortVal)。功能描述:向指定的GPIO端口写入值。输入参数1:GPIOx,x可以是(A..G),来选择外设。输入参数2:PortVal,待写入指定端口的值。输出参数:无。返回值:无。例如:/*将数据写入GPIOB数据端口*/GPIO_Write(GPIOB,0x1101);13.GPIO_PinLockConfig

函数函数名:GPIO_PinLockConfig。函数原型:voidGPIO_PinLockConfig(GPIO_TypeDef*GPIOx,u16GPIO_Pin)。功能描述:锁定GPIO端口引脚的寄存器设置。输入参数1:GPIOx,x可以是(A..G),来选择外设。输入参数2:GPIO_Pin,待锁定的端口位,这个参数的值是GPIO_Pin_x,其中x是(0..15)。输出参数:无。返回值:无。例如:/*锁定GPIOB端口PB5和PB9引脚的值*/GPIO_PinLockConf

ig(GPIOB,GPIO_Pin_5|GPIO_Pin_9);14.GPIO_EventOutputConfig

函数函数名:GPIO_EventOutputConfig。函数原型:voidGPIO_EventOutputConfig(u8GPIO_PortSource,u8GPIO_PinSource)。功能描述:选择GPIO端口引脚用于事件输出。输入参数1:GPIO_PortSource,选择用于事件输出的端口。输入参数2:GPIO_PinSource,选择事件输出的引脚。输出参数:无。返回值:无。例如:/*选择GPIOB的PB5引脚作为事件输出的引脚*/GPIO_EventOutputConfig(GPIO_PortSourceGPIOB,GPIO_PinSource5);15.GPIO_EventOutputCmd函数函数名:GPIO_EventOutputCmd,函数原型:voidGPIO_EventOutputCmd(FunctionalState

NewState)。功能描述:使能或禁止事件输出。输入参数:NewState,事件输出状态。必须是下面其中一个值:ENABLE或DISABLE。输出参数:无。返回值:无。例如:/*使能GPIOB的PB10的事件输出*/例如:/*使能GPIOB的PB10的事件输出*/GPIO_InitStructure,GPIO_Pin

=GPIO_Pin_10;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure,GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_EventOutputConfig(GPIO_PortSourceGPIOB,GPIO_PinSource10);GPIO_EventOutputCmd(ENABLE);16.GPIO_PinRemapConfig

函数函数名:GPIO_PinRemapConfig。函数原型:voidGPIO_PinRemapConfig(u32GPIO_Remap,FunctionalState

NewState)。功能描述:改变指定引脚的映射。输入参数1:GPIO_Remap,选择重映射的引脚。输入参数2:NewStat,:事件输出状态。必须是下面其中一个值:ENABLE或DISABLE。输出参数:无。返回值:无。例如:/*I2C1_SCL映射到PB8,I2C1_SDA映射到PB9*/GPIO_PinRenapConfig(GPIO_Remap_I2C1,ENABLE);GPIO_Remap用于选择用作事件输出的GPIO端口。17.GPIO_EXTILineConfig

函数函数名:GPIO_EXTILineConfig。函数原型:voidGPIO_EXTILineConfig(u8GPIO_PortSource,u8GPIO_PinSource)。功能描述:选择GPIO引脚用作外部中断线。输入参数1:GPIO_PortSource,选择用作外部中断线源的GPIO端口。输入参数2:GPIO_PinSource,待设置的指定中断线。输出参数:无。返回值:无。例如:/*选择GPIOB的PB8引脚为EXTI的8号线*/GPIO_EXTILineConfig(GPIO

温馨提示

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

评论

0/150

提交评论