使用外扩教程智能建筑工程物联网技术实训考核装备_第1页
使用外扩教程智能建筑工程物联网技术实训考核装备_第2页
使用外扩教程智能建筑工程物联网技术实训考核装备_第3页
使用外扩教程智能建筑工程物联网技术实训考核装备_第4页
使用外扩教程智能建筑工程物联网技术实训考核装备_第5页
已阅读5页,还剩636页未读 继续免费阅读

下载本文档

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

文档简介

YLYL-796智能建筑工程物联网技术实训考浙江YL教育装第一章产品简 第二章YLSTM32F107VCT开发板硬件简 板载AD实 实时时钟 第六章ARM应用综合实 第七章物联网安卓应用综合实 第八章物联网安卓开发 第一章产品简介浙江YL教育装备专利产 杯”大学生智能建筑工程实践技能竞赛指定设 参考,以实际配置为准系统器件主要包括各种电源、网络、、显示、输入及输出装置等;辅材主要软件则由各种系统软件与通用软件等组成使用本设备能够使学生在模拟建筑平台的各个自定义区域中对“ 周边安防系统“DDC智能照明系统“物联网智能家居系统”及“SASBAS及物联网集成系统”进行设计、安装、接线、编程、组态、集成、调试、运行、诊断作而各在的并熟其技点够训练与检验学生的团队协作、计划组织、交流沟通、工程规划及实施等能力,富职素,高合是适项考、师学学实实等方面求建电与能系实训核备。YLSTM32F107VCT整体功能简物联网智能建筑主控板采用意法半导体的物联型控制stm32F107VCT,其实物图如图2LCD12864图3TFT触摸屏液晶扩展模一、YL主板功能简STM32F107VCT6,ARMCortex-M3内核,ARMCortex-M3内核,主频72Mhz字节的FLASH和64K字节的1个10M/100M以太网接口,标准RJ45接1个USB2.0OTG全速接口,可以作为USBSLAVE,也可以作为USB1个标准的2.8/3.2寸TFTLCD接口,带触摸功能,分辨率320X240,26万色(支持的TFT驱动ILI9341)1个SD卡接2个CAN总线接1个RS-485接2个RS-232C串口(使用DB9,线序与PC机相同1个IIC接口的EEPROM,24C02,容量2K比14个功能按钮,其中包括WAKEUP唤醒功能和TEMPER功1个电源指示灯(绿色4个用户状态指示灯21个标准的JTAG/SWD仿真调试接1路电位器可调电阻模拟输入,可以数转换实2个DAC数模转换接口连接到接线2个ADC模数转换接口连接到接线1个DC5V电源接1个电源开关,板的电源,可以选择从USB取电或DC5V电源接口取支持从JLINK取5V电源或3.3V电主板各模块简YL主控板的处理器是STM32F107VCT6,该处理器基于ARMV7架构的Cortex-M3内核,主频72Mhz,内部含有256K字节的FLASH和64K字节的SRAM,LQFP100封装。STM32主要产品系列家谱如图4所示,STM32F107属于互联型系列(STM32ConnectivityLine),资源非常丰富,比其他系列多了USB2.0OTG全速接口和以太网IEEE1588接口。10M/100M

YL主控板采用高性价比的DM9161A作为10M/100M以太网PHY,采用RMII接口与处理器STM32F107内部的IEEE1588MAC连接,标准RJ45接口,支持平行交叉网线自适USB2.0OTGYL主控板含有一个USB2.0OTG全速接口,既可以作为OTG与其它OTG设备相连协商主从角色;也可以固定作为USBSLAVE从设备与PC等主设备相连实现USB,USB鼠标,USB固件升级等功能;还可以固定作为USBHOST连接U盘,USB键鼠等从设备。22320 X 40的显示分辨率64万色可以真的显示、文字和菜单等,配合触摸功能实现灵活的控制,我们提供已经调试成功的LCD液晶屏和触摸屏的示例代码。本开发板具有市面罕见的完美支持ILI9341液晶驱动功能SD有了它,我们的开发板就相当于拥有了一个大容量的外部器,不单可以用来提供数据,也可以用来数据,使得我们的板子可以完成的功能。CAN总线YL主控板提供两组CAN总线CAN是控制器局域网络(ControllerAreaNetwork,的简称,是国际上应用最广泛的现场总线之一。其所具主控板提供的两组CAN总线接口可以很方便的与CAN设备CAN总线控制实验S-485接口YL主控板提供一组485RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线,其最大传输距离约为1219米,最大传输速率为10Mbps。-YL主控板提供两个串口。由STM32F107VCT6的USART1和USART2 IICIICEEPROM常用于掉电数据保存,和配置数据等场合,YL主控板板载有一颗24C02,用于重要数据,也可以用来做IIC实验及实现其他应用。复位该按钮是YL主控板整板硬件复位按钮,当按键按下时,STM32处理器,液晶,以太网,以及音频 都将复位。YL主控板除了前面提到的复位按键这一特殊功能按键外,还提供四个按键,其中两个按键分别为WAKEUP唤醒按键,以及TAMPER按键,另两个为用户可自定义功能的通用按键USER1和UE2。(说明:这四个按键,可依据实际产品,定义成产品的功能按键,包括WAKEUP按键与TAMPER按键)YL主控板提供了1个电源指示灯和4路通用LED指示灯。电源指示灯指示3.3V电源是否正常。4路通用ED指示灯可以用于指示STM32开发板的状态。功User(默认模式RTC实时时YL主控板内置RTC实时时钟,我们提供支持年月日时YL主控板提供了一路可调电阻作为模拟信号输入,通过这一路可调电阻可以学习处理器的ADTAW仿真调试YL主控板提供标准的20针JTAG接口,可以直接和ULINK或者JINK等主流仿真器连接,同时支持SWD(因为STM32支持SWD)。可以用于调试STM32,更方便的开发软件。DC5V电源接YL主控板提供5V直流电源输入接口,DC电源座符合常见电源适配器接口标准,DC电源座的里面为电源正极,外面为电源负极。YL主控板支持4种供电方式:1、DC5V提供5V;2、USB提供5V;3、JLINK提供5V;4JLINK提供3.3VYL主控板板上使用3.3V电源,所以我们需要将USB的5V或DC电源座的5V或者Jlink提供的5V电压转换为3.3V。YL主控板将STM32处理器部分具有特殊功能的管脚连接到预留接线端子,提供一些可扩展的功能。预留接口的管脚定义如下:1112223344556Y32f10的E功能复用的跳线设 CAN总线的跳线与ICEEPROM选择跳将P4跳帽连接上时I2CEEPROM被选择连接,否则CAN总RS232串口1与USB选择跳RS-232串口与USBOTG接口,跳线定义串口11-1-USBOTG接2-2-串口1RS232RS232串口1与USB选择跳串口2可通过跳串口21-串口2RS4852-串口2RS232RTC实时时钟跳TM32的BT采用CR1220纽扣电池和VCC3.3混合供电的方式,在有外部电源(VCC3.3)的时候,BT1不给处理器的VBTBT1给BTBTTCAN总线120Ω由于CAN总线在运行时需在总线两端匹配120Ω的电阻,因而在本物联网智能建筑设备实训系统中,需用跳线帽将A总线连接的第一块主板(燃气电源嵌入板)和AN总线连接的最好()的2短接。触摸屏和以太网接口的跳线2-3第三章相关驱动安装CANCANUSB 系统提示找到新硬件,选择“是,仅这一次(Y)”选项,并点击“下一步”在如下画面中,选择“从列表或指定位置安装(高级(S)”,并点击“下一步”最后点击“完成”(”((话框中选择“硬件”(4)而后选择“设备管理器”(5)最后在设备处理器中查看是否完成驱Z-TEKUSBGSMZ-TEK串口线插入USB口Z-TEK产品驱动支持的windows系统包含如下WindowsWindows8WindowsWindows7WindowsWindowsWindowsXPWindows安装方式一:一键式驱动安装步骤 \Windows全系统驱动 ,点击点击“下一步点击“完成,安装方式二:inf驱动插入产品 端,系统会提示要安装驱动,在“我的电脑”右键菜单选择“管理进入管理界面,打黄色感叹号的即为USB在黄色设备上点击右键“更新驱动程序,选择“浏览计算机。手动查找并安装选择路径至…\驱动程序\Windows全系统驱动\inf系统提示您,再安装一次驱动,请重复步骤第四章ARM关开MDK412备注:该软件 :“YL-796用户光盘\相关软件\keilMDK安装软件MDk412.exe开始安装在下图中点击而后(1)点击“Browse…”选择安 ,(2)点击确定,(3)并点击 按钮”继续安点击“Next安装完成后,在桌面上双击 uVision4”进入主程序选择File菜单栏,点击“LicenseManagement”进行你的CID双击安装源文 中的KEIL_Lic.exe文在跳出的如下界面中,的CID码进去,并选择Target为“ARM”,而后点击码会自动生成得到的序列号,放到如图所示位置,并点击 LIC”按完成安装JLink驱动程序的安装备注:该软件 :“YL-796用户光盘\相关驱动\JLink驱动双击“Setup_JLinkARM_V412.exe”接着跳转到如下画面,点击“Yes”点击“Next”点击“Next”而后,点击“Next”而后,点击“Next”10.最后,点击点击“Finish”ARMLED作为开发板硬件经典入门实验,非流水灯莫属(流水灯也叫跑马灯。YLSTM32F107物联网开发板板载了4个LED指示灯,LED1,LED2,LED3和LED4。本实验将通过教你如该实验的关键在于如何控制STM32的IO口输出高低电平。通过这一节的学习,您将初步掌握STM32基本IO口的使用,迈出STM32学习的第一步。前面已经跑马灯的关键实际上就是如何控制STM32处理器的GPIO接口作为输出STM32GPIO的原理和控制STM32IO8模拟输入输入浮空输入下拉输入上拉开漏输出推挽输出typedef{GPIO_Mode_AIN=0x0,GPIO_Mode_IPD=0x28,GPIO_Mode_IPU=0x48,GPIO_Mode_Out_PP=0x10,GPIO_Mode_AF_OD=0x1C,GPIO_Mode_AF_PP=0x18在我们使用一个GPIO之前,我们一般需要对GPIO管脚的时钟,和GPIO管脚模式以及STM32的GPIO端口在作为输出时,可以软件配置端口最大支持的时钟速率,有以下几种输出模式,最大时钟速率输出模式,最大时钟速率2MHz50MHztypedefenum{STM32处理器的功耗可以依据实际的需求,选择合适的时钟速率,GPIO口支在对STM32的GPIO管脚有了一定的了解后,我们看一个完整的GPIO端口子为程序便于大家修改和移植,此处使用宏来定义指示灯的管脚等:#define #defineGPIO_LED_PORT #define #define #define #define #define 下面的LED_config函数是初始化YLSTM32F107物联网开发板的4个LEDGPIO端口初始void{GPIO_InitTypeDef/*EnableGPIOB,GPIOCandAFIOclock*/RCC_APB2PeriphClockCmd(RCC_GPIO_LED|RCC_APB2Periph_AFIO,ENABLE);/*LEDspinsconfiguration*/GPIO_InitStructure.GPIO_Pin=GPIO_LED_ALL;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIO_LED_PORT,&GPIO_InitStructure);}YLSTM32F107物联网开发板上总共有4个是用户LED指示灯,由4个GPIO管脚分别LEDGPIO管脚输出低电平时,LED指示灯亮。反之,当GPIO管脚输出高电平时,LED指示灯灭。这四个LED指示灯分别由PD2、PD3、PD4和PD7控制。LEDGPIOLEDGPIOGPIO管脚与对应的LED灯关系如下LED指示灯电路如下所示:LEDLEDYLSTM32F107物联网开发板LED流水灯实验使用宏来定义指示灯的管脚等#defineRCC_GPIO_LED #defineGPIO_LED_PORT #define #define #define #define #define 下面的LED_config函数是初始化YLSTM32F107物联网开发板的4个LEDGPIO端口初始化的子函数void{GPIO_InitTypeDef/*EnableGPIOB,GPIOCandAFIOclock*/RCC_APB2PeriphClockCmd(RCC_GPIO_LED|RCC_APB2Periph_AFIO,ENABLE);/*LEDspinsconfiguration*/GPIO_InitStructure.GPIO_Pin=GPIO_LED_ALL;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIO_LED_PORT,&GPIO_InitStructure);}以下为一些底层的函数,Led_Turn_on_all函数就是点亮所有Led,其中调用的GPIO_ResetBits就是STM32F10x_StdPeriph_Lib_V3.3.0库的标准函数,作用是将指定的一个或多个管脚输出低电平,前面讲过只要Led管脚输出低电平,指示灯就会发光。void{/*TurnOnAllLEDs*/}Led_Turn_off_all函数就是熄灭所有Led,其中那个调用的GPIO_SetBits也是STM32F10x_StdPeriph_Lib_V3.3.0库的标准函数,作用是将指定的一个或多个管脚输出高电平,前面讲过只要Led管脚高电平,指示灯就会熄灭。void{/*TurnOffAllLEDs*/}Led_Turn_on函数就是实现根据传入的参数点亮特定的LedLed。voidLed_Turn_on(u8led){/*TurnOffSelectLED*/{casecasecasecase}}Delay_MyARM流水灯使用的延时函数,简单的For循staticvoidDelay_MyARM(IOuint32_t{for(;nCount!=0;nCount--}有了以上的子函数 主函数就会比较简单int{u8KeyNum= ///*USARTxconfiguredasBaudRate=115200WordLength=8OneStopNoHardwareflowcontroldisabled(RTSandCTSReceiveandtransmitUSART_InitStructure.USART_BaudRate=9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No; USART_InitStructure.USART_Mode=USART_Mode_Rx|/*完成串口时钟配置、GPIO配置、根据上述参数初始化并使能串口*/Init(COM1,&USART_InitStructure);//标记COM2代表“COM1口”,COM1代表“COM2/*OutputamessageonHyperterminalusingprintffunction*/printf("\n\rUSARTIsNowReady\n\r");printf("|||/_|/_printf("| | | / )|)| |||| printf("| ||\\/|</ ||||\\\\/)| | |)//_||||_| while }MAIN函数一开始就初始化LEDGPIO,然后“上电或复位后所有的LED闪烁一下”这样的目的可以检测4个指示灯是否可以正常可用。最后进入While循环,KeyNum变量每次加一,将KeyNum对4求余数(也可以说取模)得到的0-3数字就是点亮对应的LED,这LED流水灯实5VJLink 双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开)而后对开发板上电,最后跑马灯会依次点亮,验证程序在正常运行。(D1->D2->D3-按键检测实YLSTM32F107物联网开发板有的4个按键(SW2、SW3、SW4、SW5)制板上的LED1LEDSW5LED2LEDSW4LED3LEDSW3LED4LEDSW2YLSTM32F107物联网开发板四个LED等和四个按键的管脚分别如下图所示LEDLEDLED灯对应的STM32GPIOIO8模拟输入输入输入开漏推挽typedef{GPIO_Mode_AIN=0x0,GPIO_Mode_IPD=0x28,GPIO_Mode_IPU=0x48,GPIO_Mode_Out_PP=0x10,GPIO_Mode_AF_OD=0x1C,GPIO_Mode_AF_PP=0x18在我们使用一个GPIO之前,我们一般需要对GPIO管脚的时钟,和GPIO管脚模式以及STM32的GPIO端口在作为输出时,可以软件配置端口最大支持的时钟速率,有以下几种10MHz输出模式,最大时钟速率2MHz50MHztypedefenum{速率主要针 GPIO作为输出使用时,作为输入使用时可以不关注#defineRCC_GPIO_LED #defineGPIO_LED_PORT #define #define #define #define #define LED_configYLSTM32F1074LEDGPIO端口初void{GPIO_InitTypeDef/*EnableGPIOB,GPIOCandAFIOclock*//*LEDspinsconfiguration*/GPIO_InitStructure.GPIO_Pin=GPIO_LED_ALL;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIO_LED_PORT,&GPIO_InitStructure);}/*KEY按

键值/*ValuesmagictotheBoardkeys012345YLSTM32F107GPIO会使相应的GPIO口变为低电平,因此,我们在硬件上加了上拉电阻,这样我们配置按键使(GPO_ode_IN_FOTING下,也可以使用内部的上拉电阻,这时我们需要配置按键使用的GPIO为输入上拉模式(GPIO_Mode_IPU。为了不失一般性在这里我们配置按键使用的GPIO为输入上拉模式。没有收到有效信号,保持这些GPIO口为高电平。Function : :ConfigurestheExtension : : :voidGPIO_KEY_Config(void){GPIO_InitTypeDef/*ConfigureKEY1Button*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin=GPIO_KEY1;/*ConfigureKEY2Button*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin=GPIO_KEY2;/*ConfigureKEY3Button*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin=GPIO_KEY3;/*ConfigureKEY4Button*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin=GPIO_KEY4;}按键检测函数,当有按键按下时,按键检测函数返回对应的键值。Function : :Readskeyfrom : : :ReturnKEY1,KEY2,KEY3,KEY4oru8ReadKeyDown(void){/*1keyispressed*/{return}/*2keyispressed*/{return}/*3keyispressed*/{return}/*4keyispressed*/{return}/*Nokeyispressed*/{return}}LEDLED的控制和int{u8KeyNum=/*LEDGPIO*//*LED闪烁几次 /*KEYGPIO*//*Mainloop*/while(1){/*判断是否与按键按下*//*LED灯,没有按键按下点亮全部*/}5VJLink 在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开)按下复位键的时候,4个LED灯起先闪烁3次,然后全部亮起。当按住SW2键不放,D4亮起,其余熄灭。当按住SW3键不放,D3亮起,其余熄灭。当按住SW4键不放,D2亮起,其余熄灭。当按住SW5键不放,D1亮起,其余熄灭。如下图所示没有按住按键时,四个LED全亮,如SW2SW3SW4SW5LCD12864液晶屏显示实LCD12864介库的点阵图形液晶显示模块;屏幕分辨率为128×64内置有819216*16点汉字,和12816*8ASCII文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可以显示出自定义的图形.2、显示分辨率:128×64点3、内置汉字字库,提供8192个16×164、内置12816×8点阵字5、2MHZ时钟频6、显示方式:STN、7、驱动方式2DY8、视角方向:69、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—10、通讯11、内置DC-DC转换电12、无需片选信号,简化软件设13、工作温度:0℃-+55℃,温度:-20℃-12864表5.3.112864的管脚管脚名称电管脚123.0--3-对比度(亮度)4RS=“H”,表示DB7——DB0RS=“L”,表示DB7——DB0为显示5W=,E=,数据被读到DB7——DB0==“ DB7——DB0的数据IR6使能信号7三态8三态9三态三态三态三态三态三态H:8位或4位并口方式,L-空S复位-LCD驱动A背光源正端K背光(DDRAM字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库、HCGROM(ASCII码字库)及CGRAM(自定义字形的内容三种不同字符/字型的选择编码范围为:0000~0006H(其代码分别 共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。本实验中 采用串行方式驱动,其电路原理图如下所LCD12864实验操作流5VJLink打开文件 “ARM使用外扩2014\3.LCD12864液晶显示\Project\LCD12864\MDK-ARM”,双击“Project.uvproj”在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开)5.3.3int{u8KeyNum= //LCD//LCD管脚////1 write_strdate("你好while{ }串口一通讯实STM32ST32的串口资源相当丰富的,功能也相当强劲。YT3107物联网开发板所使用的ST3F07T6最多可提供5路串口,有分数波特率发生器、支持同步单线通信和半双工单IIrDAIRENEDA等。串口最基本的设置,就是波特率的设置。STM32的串口使用起来还是蛮简单的,只要你开启了串口时钟,并设置相应IO口的模式,然后配置一下波特率,数据位长度,奇偶校串口设置的一般步骤可以串口时钟使能,GPIO时钟使能。串口作为STM32的一个外设,其时钟由外设时钟串口控制。STM32的每个串口都有3个控制寄存器USART_CR1~3置都是通过这3数据发送与接收。STM32的发送与接收是通过数据寄存器USART_DR来实现的,TDR和RDR串口状态串口的状态可以通过状态寄存器USART_SR。其中包含RXNE和TC并且可以读出来了这时候我们要做的就是尽快去USART_DR,通过读USART_DR可以将该位清零,也可以向该位写0,直接清除。void //1{GPIO_InitTypeDefGPIO_InitStructure;NVIC_InitTypeDefNVIC_InitStructure;ENABLE);//使能USART1,GPIOA时钟 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_Init(GPIOA,&GPIO_InitStructure);//Usart1NVIC配NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //根据指定的参数初始化VIC寄存器//USARTUSART_InitStructure.USART_BaudRate=9600; //bound;//一般设置为9600; USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits=USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity=USART_Parity_No;//无奇偶校验位 USART_InitStructure.USART_ModeUSART_Mode_Rx|USART_Mode_Tx;//收发模式USART_Init(USART1,&USART_InitStructure);//初始化串口USART_Cmd(USART1,ENABLE); }串口1对应着PA9和PA10,分别为TXD1和RXD1,如下图1P223P323该跳用一根“直连公线”的一端插上开发板的串口一上,另一端与一“交叉母线”的一端相连接,“交叉母线”的剩余一端连接到串口线上,然后再将串口线连接至电脑,如下图所示。5VJLink给开发板上电 “ARM使用外扩2014\4串口1\Project\chuankou\MDK-ARM”,双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download7.将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开)最后打开串口调试助手 设置波特率“9600校验位“无串口调试助手会收到如下信息在串口调试助手中发送任意5如下串口二通讯实STM32ST32的串口资源相当丰富的,功能也相当强劲。YT3107物联网开发板所使用的ST3F07T6最多可提供5路串口,有分数波特率发生器、支持同步单线通信和半双工单IIrDAIRENEDA等。串口最基本的设置,就是波特率的设置。STM32的串口使用起来还是蛮简单的,只要你开启了串口时钟,并设置相应IO口的模式,然后配置一下波特率,数据位长度,奇偶校串口设置的一般步骤可以串口时钟使能,GPIO时钟使能。串口作为STM32的一个外设,其时钟由外设时钟串口控制。STM32的每个串口都有3个控制寄存器USART_CR1~3置都是通过这3数据发送与接收。STM32的发送与接收是通过数据寄存器USART_DR来实现的,TDR和RDR串口状态串口的状态可以通过状态寄存器USART_SR。其中包含RXNE和TC并且可以读出来了这时候我们要做的就是尽快去USART_DR,通过读USART_DR可以将该位清零,也可以向该位写0,直接清除。TC(发送完成),当该位被置位的时候,表示USART_DR内的数据已经被发送完成void //2{NVIC_InitTypeDef/*SettheVectorTablebaseaddressat0x NVIC_InitStructure.NVIC_IRQChannel= NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;USART_InitStructure.USART_BaudRate=115200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No; USART_InitStructure.USART_Mode=USART_Mode_Rx|Init(COM1, //对应为串口/*Enablethe 1Transmoitinterrupt:thisinterruptisgeneratedwhenthe1transmitdataregisterisempty*/USART_ITConfig(USART2,USART_IT_TXE,/*Enablethe 1Receiveinterrupt:thisinterruptisgeneratedwhenthe 1receivedataregisterisnotempty*/USART_ITConfig(USART2,USART_IT_RXNE,TxCounter=/*OutputamessageonHyperterminalusingprintffunction//printf("\n\rUSARTPrintfExample:retargettheClibraryprintffunctiontothe x,printf("\n\r !############ "- printf("\n\rSTM32F107use printf("\n\rFlash大小为:%dK字节! IOprintf("\n\r系统内核时钟频率(SystemCoreClock)为:%dHz.\n\r",}串串口2对应着PD5和PD6,分别为TXD2和RXD2,如下图所串口2通讯实验的跳线说明如下:用跳线帽将P5下面两个脚短该跳线设置的特写图如下5VJLink给开发板上电 “ARM使用外扩2014\5串口2\Project\chuankou\MDK-ARM”,双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download7.将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开) ,设置波特率为“115200”校验位为“无NON,数据位为“8,停止位为“1。如下图所示。串口调试助手会收到如下信息在串口调试助手中发送任意5板载AD实STM32ADC简STM32拥有1~3个ADC(STM32F101/102系列只有1个ADC),这些ADC可以独立使用,也可以使重模式(提高采样率)。STM32的ADC是12位逐次近型的模拟数字连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式在16位数据寄存器STM32将ADC的转换分为2个通道组:规则通道组和注入通道组。规则通道相当于打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。STM32其ADC的规则通道组最多包含16个转换,而注入通道组最多包含4个通道。STM32中自带的AD14MHZ,共有16个转换通道,每个转换通道对ADC123_IN10表明PC0管脚可以作为AD1,AD2,AD3的第10ADC转换的详细设置步骤如开启ADC使能ADC时钟,并设置分频因子。要使用ADC,第一步就是要使能ADC的时钟,在使能完时钟之后,进行一次ADC的复位。接着我们就可以通过RCC_CFGR设置ADC的分频因子。分频因子要确保ADC的时钟(ADCCLK)不要超过14Mhz。设置ADC的工作模式。在设置完分频因子之后,我们就可以开始ADC的模式配置了,设置ADC开启AD在设置完了以上信息后,我们就开启AD转换器,执行复位校准和AD是必须的!不校准将导致结果很确ADC值。在上面的校准完成之后,ADC就算准备好了。板载ADC原理YLSTM32F107物联网开发板板载电位器与STM32处理器的PC0管脚相连,可以实现AD模数转换。外部模拟信号由电位器(可调电阻)3.3V电压分压得到,其硬件原理图如/*EnableDMA1clock*//*DMA1channel1 //DMA对应的外设DMA_InitStructure.DMA_MemoryBaseAddr=//内 DMA_InitStructure.DMA_DIR=DMA_InitStructure.DMA_BufferSize=1;DMA_InitStructure.DMA_PeripheralIncDMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=//定义外设数据宽度为16DMA_InitStructure.DMA_MemoryDataSize=//DMA搬数据尺寸,HalfWord就是为16DMA_InitStructure.DMA_Mode=DMA_Mode_Circular; DMA_InitStructure.DMA_Priority=DMA_Priority_High; DMA_InitStructure.DMA_M2M=DMA_M2M_Disable; DMA_Init(DMA1_Channel1,&DMA_InitStructure);/*EnableDMA1channel1*//*EnableADC1andGPIOCclock*/ ADC_InitStructure.ADC_Mode=ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode=ENABLE; ADC_InitStructure.ADC_ContinuousConvMode=ENABLE; ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_NbrOfChannel=1; ADC_Init(ADC1,&ADC_InitStructure);//板子测试的/*ADC1regularchannel10configurationADC101,转换时间*/ADC_RegularChannelConfig(ADC1,ADC_Channel_10,1,ADC_SampleTime_55Cycles5);ADC_DMACmd(ADC1, //ADC/*EnableADC1ADC_Cmd(ADC1, //开启/*EnableADC1resetcalibarationregister*/ /*ChecktheendofADC1resetcalibrationregister //等待重/*StartADC1calibaration*/ /*ChecktheendofADC1calibration //等待校/*StartADC1SoftwareConversion*///连续转换开始,ADC通过DMA方式不断的更新RAMwhile{ADCConvertedValueLocal=Precent //算出百分比 //3.3V的电平,计算等效电平COM1_SEND_BUF[0]=Voltage/1000+0x30;COM1_SEND_BUF[1]='.';COM1_SEND_BUF[3]=(Voltage%100)/10+0x30; }} P223P323该跳1用一根“直连公线”的一端插上开发板的串口一上,另一端与一“交叉母线”的一端相连接,“交叉母线”的剩余一端连接到串口线上,然后再将串口线连接至电脑,如下图所示。331286445VJLink6 “\ARM使用外扩2014\6板载ADC\Project\ADC\MDK-ARM”,双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对 “9600,“无NON,数据位为“8,停止位为“1。如下图所示。串口调试助手会收到如下信息 液晶屏上能15.调节调节CAN口1通讯实CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过ISO11898及ISO11519进行了标准化,现备、工业设备等方面。现场总线是自动化领域技术发展的热点之一,被誉为自动化领域CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电CAN协议同时开始发送消息时,根据标识符(Identifier以下称为ID)决定优先级。ID并不是表示发送的目的地址,而是表示总线的消息的优先级。两个以上的单元同时开始发送消息时,通信速度较快,通信距离远。最高1Mbps(距离小于40M),最远可达10KM(5Kbps)具有错误检测、错误通知和错误恢复功能。所有单元都可以检测错误(错误检测功能,检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。故障封闭功能。CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)持续数据错误时,可将引起此故障的单元从总线上出去。连接节点多。CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有250KbpsISO11898标准,该标准的物理CANCANCANCANCANCANCANVVCAN-VCAN-显性 隐性时间单元输出显性电平,总线上即为显性电平。而电平则具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强。另外,在CAN总线的起止端都有一个120Ω的终端电阻,来做阻抗匹配,以减少回波反射。CANCAN1HCANCAN1H和开发板的CAN1H连接,CAN1L和开发板的CAN1L连接(同时将120ΩP23的1,2脚用跳线帽短接P2335V4.JLink5打开文件 “\ARM使用外扩2014\7CAN1\Project\CAN\MDK-ARM”,双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开)将CAN适配卡和电脑连接好,最后,打开CAN调试界面,设置CAN的波特率为250kbps,设置过程如下在跳出的界面中,将波特率设置 bps,然后点击确定,如下图所如果配置正确,将会出现下图所示提示CAN从CANCAN口2通讯实CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过ISO11898及ISO11519进行了标准化,现备、工业设备等方面。现场总线是自动化领域技术发展的热点之一,被誉为自动化领域CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电CAN协议同时开始发送消息时,根据标识符(Identifier以下称为ID)决定优先级。ID并不是表示发送的目的地址,而是表示总线的消息的优先级。两个以上的单元同时开始发送消息时,通信速度较快,通信距离远。最高1Mbps(距离小于40M),最远可达10KM(5Kbps)具有错误检测、错误通知和错误恢复功能。所有单元都可以检测错误(错误检测功能,检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。故障封闭功能。CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)持续数据错误时,可将引起此故障的单元从总线上出去。连接节点多。CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有250KbpsISO11898标准,该标准的物理CANCANCANCANCANCANCANVVCAN-VCAN-显性 隐性时间单元输出显性电平,总线上即为显性电平。而电平则具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强。另外,在CAN总线的起止端都有一个120Ω的终端电阻,来做阻抗匹配,以减少回波反射。CANCAN1HCANCAN1H和开发板的CAN2H连接,CAN1L和开发板的CAN2L连接(同时将120ΩP23的1,2脚用跳线帽短接P2335V4.JLink5打开文件 “\ARM使用外扩2014\8CAN2\Project\CAN\MDK-ARM”,双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开)将CAN适配卡和电脑连接好后打开CAN调试界面设置的波特率 250kbps,设置过程如在跳出的界面中,将波特率设置 bps,然后点击确定,如下图所如果配置正确,将会出现下图所示提示CAN从CANCAN1有数据接收到,LED灯全灭;CAN2有数据接收到,LED触摸屏显示实我们一般液晶所用的触摸屏,最多的就是电阻式触摸屏了(多点触摸属于电容式触摸屏,比如几乎所有智能机都支持多点触摸,它们所用的屏就是电容式的触摸屏),我们所用的的触摸屏属于电阻式触摸屏,下面简单介绍下电阻式触摸屏的原理。电阻式触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的(小于1/1000英寸)的透明点把两层导电层隔开绝缘化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出电阻屏的特点有:是一种对外界完全的工作环境,不怕灰尘、水汽和油污可以用任何物体来触摸,可以用来写字画画,这是它们比较大的优势电阻触摸屏的精度只取决于A/D转换的精度,因此都能轻松达到4096*4096 转换器,一般来说是需要一个控制器的,本开发板标配的液晶驱动为ILI9341,其电路原理图如下图所示:1本实验的.P2223P22短接口的2.注意以太网和触摸屏的跳35V4.JLink56.打开文 “\ARM使用外扩2014\9触摸屏\stm32触摸屏实验-ILI9341触摸显\USER”,双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对而后对开发板上 ,再按下板子上的复位键,如下图所按下复位键后,在TFT屏幕上 .用手指或笔SysTick实验SysTick实际就是系统滴答定时器主要是为操作系统提供一个的硬件上的定时中断。本例程通过SysTick定时器,产生的中断进行点灯控制。产生一个中断,即使是系统在睡眠OSCM3器件之间的移植中不必修改系统定时器的代码,移植工作一下子容易多了。如下图两个任务间通过SysTick轮Sysik定时器被在NVIC中,用于产生SYSSICK异常(异常号:15)。在以前,大多数系统需要一个硬件定时器来产生操作系统需要的滴答多个任务许以不同的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还是让用户程序不能随意它的寄存器,以维持操作系统“心跳”的节律。Corex-M3处理器内部包含了一个简单的定时器。因为所有的CM3都带有这个定时,软件在不同CM3器件间的移植工作得以化简。该定时器的时钟源可以是内部时钟(FCLK,CM3上的自由运行时钟,或者是外部时钟(CM3处理器上的SCLK信号STCLK的具体来源则由设计者决定,因此不同产品之间的时钟频率可能会大不相同,你需要检视芯片的器件手册来决定选择什么作为时钟源。席CM3CM3SysTick定时器是作为NVIC(嵌套向量中断控制器)的一部分实现的。前面提到的,可以为系统提供一个“时基(用于切换任务,同时,Systick的精准计时,也可以用来作为延迟。对于时间要求严格的场合,SysTick的意义是相当重大的。本实例需要用到使用GPIO管脚控制LEDLEDLEDSysTick示例中新增添的代码进行说明。本次为SysTick系统滴答中断实验,所以需要配置SysTick系统滴答参数,使用SysTick_ConfigurationSysTick_Config(SystemCoreClock/100)函数可以看(SystmCoClok/100一的SystemCoreClock个时钟数产生一次中断,那么一秒钟就会有100次中断。(注:表示系统主时钟频率,在参数为SystemFrequency。NVIC_SetPriority函数配置中断优选级Function : :ConfigureaSysTickBasetimeto10 : : :void{/*SetupSysTickTimerfor10msecinterrupts if(SysTick_Config(SystemCoreClock/100)){/*Captureerror*/while(1);}/*ConfiguretheSysTickhandlerpriority*/NVIC_SetPriority(SysTick_IRQn,0x0);}以下的“InterruptConfig()”函数告诉处理器中断向量表存放的起始地址,STM32支持中断向量表起始地址动态设置,这个特性在SRAM调试和DFU固件升级时很有用,以为这些情况下中断向量表起始地址已经不是0x0000此处将中断向量表起始地址设置为内部Flash的起始地址0x void{/*SettheVectorTablebaseaddressat0x }我们看一下主程序main的相关LED的初始化和SysTick的中如下int{/*LEDGPIO*//*LED闪烁几次,以确定指示灯电路正常 /*配置中断向量表的地址等*//*配置SysTick的中断参数 /*Mainloop*/while(1){;}}从上面的main函数可以看出,main函数中只是做了LED的初始化和SysTick的中断配while死LED灯的亮灭是在SysTick中断服务程序中控制。下面,我们介绍关于SysTick中断程序的实现。本次SysTick系统滴答中断实验需要在该文件的voidSysTick_Handler(void){}中断接口函LED指示灯每秒点亮熄灭一次。我们在“stm32f10x_it.c”中的SysTick中断接口函数中调用LED_Spark函数控制LED灯闪烁。void{}由于LED_Spark函数是在main.c中实现以我们要在“stm32f10x_it.c”中使用一个外部LED_Spark函数,以使该函数在“stm32f10x_it.c”中可以被调用externvoid下面我们来看一下LED_Spark函数的具体实void{ IOuint32_tTimingDelayLocal=if(TimingDelayLocal!={ //50LED{} //50LED{}TimingDelayLocal该函数每一次被调用静态本地变量TimingDelayLocal}{}}由上述实验代码可知每产生一次SysTick中断,进入SysTick中断服务LED_Spark函数,而我们配置的是每秒中100次SysTick中断,那么LED_Spark函数每秒中会被调用100次,所以我们使用一个静态本地变量TimingDelayLocal来存放该函数被调用的次数。该函数每一次被调用静态本地变量TimingDelayLocal便会减一,当减为0时重新赋值点亮LED指示灯,这样周而复始便可以使LED指示灯每秒闪烁一次。为什么使用静态变量TimingDelayLoca1?目的是每次进入LED_Spark函数时静态变量键字则每次每次进入LED_Spark函数时TimingDelayLocal为0,执行else后其值为100,退5VJLink “ARM使用外扩2014\10SysTick\Project\SysTick\MDK-ARM”,双击在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开)按下复位键后,会发按下复位键后,会发现四个LED灯不断的闪烁,如短暂产品唯一标识实产品唯一的标识(UniqueDeviceID)非常适合●用来作为序列号(例如 96位的产品唯一标识所提供的参考号码对任意一个STM32微控制器,在任何这个96位的产品唯一标识,按照用户不同的用法,可以以字节(8位)为单位,也可以以字(16位)或者全字(32)位96位独特的ID位于地址0x1FFFF7E8~0x1FFFF7F3的系统区,用户可以以字节、半字、或字的方式单独其间的任一地址,其中0x1FFFFF3中为最高字节,0x1FFFF7E8中为最低字节。作为扩展本次试验顺带位于0x1FFFF7E0地址的“闪存容量寄存器”获得开发板内部集成Flash的大小信息,通过调用系统Printf函数来打印产品内部Flash产品唯一标识(UniqueDeviceID)为处理器内部组件,这部分不需要硬件电路,这里仅在串口输出产品唯一标识(UniqueDeviceID)即可程序中定义全局变量IntDeviceSerial存放读到的设备ID96位的独特ID位于地址0x1FFFF7E8~0x1FFFF7F3的系统区,程序如下uint32_tIntDeviceSerial[3]; /*全局变量IntDeviceSerial存放读到的设备ID*/voidGet_ChipSerialNum(void){IntDeviceSerial[0]=*(IOuint32_t*)(0x1FFFF7E8);IntDeviceSerial[1]=*(IOuint32_t*)(0x1FFFF7EC);IntDeviceSerial[2]=*(IOuint32_t*)(0x1FFFF7F0);}MyDelay函数流水灯使用的延时函数,用简单的for循环实staticvoidMyDelay(IOuint32_t{for(;nCount!=0;nCount--}下面来看看在MAIN主函数中调用的Get_ChipSerialNum()以后就可以使用Printf来打印,然后作为扩展,本次试验顺带位于0x1FFFF7E0地址的“闪存容量寄存器”使用Printf来打印出来。 Main @retvalint{/*!<Atthisstagethemicrocontrollerclocksettingisalreadyconfigured,thisisdonethroughSystemInit()functionwhichiscalledfromstartupfile(startup_stm32f10x_xx.s)beforetobranchtoapplicationmain.ToreconfigurethedefaultsettingofSystemInit()function,refertosystem_stm32f10x.cfile/*USARTxconfiguredasBaudRate=115200WordLength=8OneStopNoHardwareflowcontroldisabled(RTSandCTSReceiveandtransmitUSART_InitStructure.USART_BaudRate=115200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;Init(COM1,/*OutputamessageonHyperterminalusingprintffunctionprintf("\n\rUSARTPrintfExample:retargettheClibraryprintffunctiontotheUSART\n\r");printf("\r\n\n\nSTM32F107 %sconfigured...", printf("\n\r############STM32F107############(" "- printf("printf(" |/_|/_ | | /)|)||||| printf("\\ | ||\\/| | | |</)//_|||||\\\\/|||_| |_| / |/*Mainloop*/while(1){/*OutputamessageonHyperterminalusingUSART1_SendStringfunction*/printf("\n\r产品唯一标识(UniqueDeviceID)为:[%X-%X-printf("\n\r产品内部Flash大小为:%dK字节 IO }}1本实验的.用跳线帽将P5下面两个脚短该跳2.25V5VJLink给开发板上电打开文 “ARM使用外扩2014\11产品唯一标识\Project\产品唯一标在跳出的keil界面中点击“Rebuild在keil界面中点击“download将开发板电源关闭,将jlink从开发板上拔下来(该操作很重要,jlink连接在板子上时对开) NON,串口调试助手会收到如下信息实时时钟RTC(Real-timeclock)是实时时钟的意思。YL开发板的处理器STM32F107集成了系统当前的时间和日期的准确性。实时时钟是一个独立的定时器。RTC实时时钟模块拥有一可编程的预分频系数:分频系数最高 22032位的可编程计数器,可用于较长时间段2APB1PCLK1RTC时钟(RTC 时钟频率的四分之一以上可以选择以下三种RTC的时钟—HSE—HSE振荡—LSI振荡器时2—APB1接口由— (预分频器、闹钟、计数器和分频器)只能由后备域复位3个专门的可中断—时钟中断,用来产生一个软件可编程的闹—秒中断,用来产生一个可编程的周期性中断信号(最长可 秒—溢出中断,只是内部可编程计数器溢出并回转为0的状16APB1总线对其进行读写操作(16.4节。APB1接口由APB1总线时钟驱动,用来与APB1总线接口。另一部分(RTC)由一组可编程计数器组成,分成两个主要模块。第一个模块是RTC的预分频模块,它可编程

温馨提示

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

评论

0/150

提交评论