




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要目前国内外都在发展智能化的物联网结构体系,越来越多的公司加入了物联网阵营,研究的方向中有一部分就是智能家居的研究发展。所谓智能家居,就是通过一些技术手段和网络知识,使我们能够见到的、触摸到,或者实际存在的任何物体进行一些操作使得这些物体在实际存在中变得智能化,方便人们使用,对人类社会的现代化发展起促进作用的一种家居生活方式。我本次设计的智能家居控制系统是基于智能电源的设计,通过本次设计的智能电源模块,我们可以方便地将所有的非相关的用电器进行组网控制,而不需要针对每一个用电器进行改造,我们可以使用一套相同的设备,完成对整个智能家居系统的组合。所以本次的毕业设计主要是以智能家居为背景,以智能
2、电源为研发方向,设计出智能家居的系统架构方式。关键词: stm32;智能家居;智能电源;openwrt;路由;网络abstractat present, both at home and abroad in the development of intelligent network structure system, more and more companies to join the internet camp, a study on the development of a part is intelligent home furnishing research direction.
3、the so-called intelligent home furnishing, is through some technical means and network knowledge, so that we can see, touch, or any object exists to perform some operation makes these objects in actual existence becomes more intelligent, convenient for people to use, the development of human society
4、 to promote the role of a home furnishing lifestyle.the control system of intelligent home furnishing i this design is the design of intelligent power supply based on intelligent power module, through this design, we will be able to easily all non related electrical network control, without the need
5、 for each electric transformation, we can use a set of the same equipment, complete combination the intelligent home furnishing system. so this graduation design is mainly based on intelligent home furnishing as background, the intelligent power supply for the direction of research and development,
6、design the system architecture of the intelligent home furnishing.key words : stm32; intelligent home furnishing;intelligent power supply; openwrt; routing; network目 录第一章 引 言41.1 研究背景及意义41.2 研究现状综述41.3本课题的研究内容41.4 本研究的主要系统构成5第二章 系统方案的设计62.1 方案的论证62.2 系统构成6第三章 系统硬件电路的设计83.1 供电电路的设计83.2 单片机电路的设计83.2.1
7、 单片机时钟电路的设计83.2.2 复位电路的设计93.2 温湿度检测电路的设计93.3 电参数检测电路93.4 控制电路的设计103.5 基于openwrt的路由中继系统的设计10第四章 系统软件的设计134.1 keil开发环境134.2 通讯协议134.3 下位机程序设计144.4 上位机程序设计14第五章 系统调试165.1 系统调试的硬件问题16致 谢18参考文献17附 录19第一章 引 言随着物联网的深入发展,智能化的设备出现在我们生活的各个方面,我们都开始看到了智能化的身影,这使我们的生活方式产生了巨大的变化。人们日益增长的物质需求强制推动着智能家居的发展,我们需要将我们的整个居
8、住水平提高到物物联网的状态,并能够通过集中控制方案对被控设备进行远程或者近距离控制。1.1 研究背景及意义目前国家对于在物联网发展方向发展的企业都提供了各种各样的支持和帮助。而趋于炙热化的物联网行业发展前景势不可挡,带动了全球的经济发展。智能家居属于物联网发展的一个范畴,可是目前的一些关于智能家居的技术都被垄断在一些大型的企业,纵然我们有能力设计,也无法快速占领整个市场。市场中关于智能家居的适用于普通家庭的智能安防及控制装置基本上是很少见的,而且这些智能家居产品的价格都比较昂贵,不是一般的家庭所能接受的。所以本次的毕业设计宗旨是设计出一款适用于普通大众的,能够实现智能家居功能的,并且可以进行后
9、期升级改造的智能家居控制系统。这对于改善普通家庭的居住水平有着决定性地帮助作用,能够在这个贫富差距越来越大的时代让普通家庭也能享受到高科技带来的便利。1.2 研究现状综述国外,1948年开始产生了第一种智能家居的设想,从此,智能家居的想法开始被各大发达国家作为主要的产品研发方向,并于1997年提出了一个第一个有关智能家居的标准,该标准中指出了智能家居是住宅智能化的核心,智能家居和智能大厦的概念开始形成一个书面的规定。该理论主要讲智能家居的各项参数应该满足我们生活的安全性需求,不能只追求智能化,同时,智能家居同时需要满足生活环境的舒适度,使通讯方式变得简单,能够将各项服务综合到一起,通过一个平台
10、就可以控制,最主要的功能是实现家庭操作的各项关系的智能化。国内,我国目前主要讲智能家居或者智能小区等定义分为四个部分,通过计算机、网络通讯、自动化控制、非接触ic卡等技术,通过网络传播途径,联系内网和外网,将各项多元化的服务信息通过先进的技术手段将住宅信息或小区信息与物业及安防信息联系起来,将该系统集成大哦哦住宅智能化系统中去,为我们的住宅环境提供有效的提示信息和裁决手段,从而实现高效的服务和管理水平,提供我们舒适的家居环境。1.3本课题的研究内容本次的毕业设计中,我的主要研究方向是物联网和智能家居方向,而这是个比较大的概念范畴,所以本次细致下来的研究目标就是基于stm32的智能电源的设计。本
11、次设计的智能电源可以拓展到行业里的其余部分,通过产品后期的移植,可以拓展许多其余功能。本次的毕业设计,主要用来采集现场环境的一些电力参数及环境参数,传输给上位机。同时上位机能够对设备状态进行控制,以此形成一组相对独立的一对一网络,最后通过该设备的组网操作,在网络上能够级联n+个设备。习惯成一个厂区或者一套住宅的智能化控制。通过升级硬件配置和软件程序,能够实现产品功能的拓展延生。1.4 本研究的主要系统构成(1)基于stm32的下位机控制系统(2)基于vc的上位机控制软件(3)基于openwrt的linux路由管理系统(4)基于c/s的web操控界面第二章 系统方案的设计2.1 方案的论证方案一
12、:采用计算机作为控制中心,采用串行接口,连接若干个传感器模块,实时将数据传送到计算机,在计算机上运行数据库,将数据及时更新,最终通过数据端的程序判断采用bs的模式,来对设备进行访问控制。在本方案中需要用到的一些专业知识包括:计算机编程java、数据库编程、php网站编程、底层的硬件设计、嵌入式编程、aos平台编程、ios平台编程。该方案下系统的整体运行比较稳定,但是需要的知识比较多,对编程人员的要求比较高,同时成本也比较昂贵。方案二:全部采用嵌入式设备作为底层和上层操作终端,通过嵌入式编程,实现系统功能。底层使用基于51单片机的数据采集单元,数据通信方式采用串行协议,上层设备使用高级单片机作为
13、控制中心,驱动7寸串口触摸屏,在该串口屏上实现数据的显示和数据的输入功能,整个系统主要需要学习嵌入式编程,并验证通信协议的稳定性,对之进行分析。使用该方案设计的电路,采集端的设备非常简单,主要做局域的数据采集,远端的控制中心功能也比较简单,主要驱动串口屏,并实现串口屏的数据输入功能,主要做串行数据解析和发送,同时还需要和其余串行设备进行组网,所以该控制中心需要至少两个串行口,才能完成数据的分析及显示。整体系统的设计成本比较低廉,但是稳定性无法确保,使用单片机作为数据控制中心时候我们无法确保其长时间不死机,数据不出错。方案三:该方案是简历在方案一和方案二的实践的基础上的。该方案中使用单片机作为子
14、采集系统,子系统本省对数据进行采集计算,然后通过总线协议,发送给上位机,在上位机上建立数据库,通过接受数据,分析数据,将数据划分为不同的单元,通过数据,判断出数据所属的群组,设备的运维状态,数据来源的设备的mac地址,记录并报讯,作为后期查询使用。最后,我们可以使用各种平台的智能终端,通过浏览器登陆我们的服务器系统,所有的操作项目都会在系统的网页界面上显示出来,并可以进行查询和操作。该方案中需要使用到计算机作为服务器,主要运行数据库文件,同时我们通过java编写一个网页文件,通过进行数据库的分析访问,并对设备进行组网操作,实现互联网控制的功能,在本系统中使用搭载linux系统的路由器作为转发工
15、具,最终实现全网的数据控制数据采集及控制。综上所述,方案三正是从各个方面都符合我们的设计需求。所以选用方案三。2.2 系统构成该系统有手机终端、计算机终端、嵌入式网络控制器、空调等设备组成。实现远程的网络控制功能。网络服务器负责数据的运算,主要运行数据库及访问程序终端,嵌入式服务器主要实现网络的分配,数据的集中处理,端口的分配,mac地址的识别。通过本系统可以有效地将家庭的局域网和互联网公网相连,在公网及局域网都能够计时有效地进行系统的控制。智能电源底层1控制嵌入式服务器1家庭无线网络嵌入式服务器nninternet通过服务器internet智能电源底层n图1 系统框图第三章 系统硬件电路的设
16、计在硬件电路的设计中,我主要设计了底层的硬件及其外设电路,本电路中包含供电电路、单片机电路、温湿度检测电路、电参数测量电路及控制输出电路。嵌入式硬件方向直接使用了代加工的主板进行系统移植。3.1 供电电路的设计本次系统主要是用来作为电源检测系统的,所以在本次设计中使用的是现有的集成的5v1a电源,通过电源稳压模块将电源电压整流到3.3v,供给单片机使用。这样我们就可以通过最简单的电路设计得到我们单片机的供电电源的设计了。该部分的电路如下图:图2 电源设计5v转3.3v电源3.2单片机电路的设计3.2.1 单片机时钟电路的设计和普通单片机一样,stm32单片机的正常工作也需要时钟电路的驱动,没有
17、时钟,单片机就无法正常运行,当然,这款单片机内部自带了时钟方案,我们可以在不接外部时钟的情况下就可以使用该芯片了,但是本次设计的系统中需要使用到串行口,我们在需要产生波特率的时候就最好不要使用内部rc震荡电路的方案,因为这样容易导致串行数据的波特率不稳定,造成系统数据传输过程中的数据紊乱,影响系统的功能。其晶振电路如图:图3 晶振电路3.2.2 复位电路的设计单片机的首次运行必须对单片机进行初始化动作,防止程序跑飞,本次设计中单片机上电的瞬间我们必须将单片机进行复位,让单片机内部指针恢复初始化状态,所以我们根据惯例,设计了上电复位电路,在上电瞬间能够给复位引脚产生一个高电平的延时动作,完成对单
18、片机的复位。同时,由于是测试电路,所以我们给电路增加了物理按键,通过物理按键对高电平的短路形成单片机的手动复位操作。其复位电路的结构图如下:图4 复位电路3.2 温湿度检测电路的设计本次毕业设计中使用的温湿度传感器是dht11,该器件是一款已校准的输出数字信号的温湿度复合传感器,通过对该传感器的访问控制,我们可以准确地获取当前的温度和湿度。从而控制设备的动作。单总线,串行接口是其独特的地方,使得我们的控制及该传感器的设计变得非常简单。该传感器的外形模拟图及接线图大致如下图所示:图5 温湿度采集传感器3.3 电参数检测电路该部分电路的设计目标是实现电路电流的检测,因为是交流电,所电压无需检测,在
19、实际的应用中,我们使用了电流互感器来实现电路电流的检测功能。其原理基本为变压器的原理,其功能图如下图:电路中的一些参数:ip 一次回路电流is 二次回路电流 zct 二次绕组阻抗zb 负荷阻抗图6 电流互感器3.4 控制电路的设计本次设计的电路中,主要使用单片机本身驱动继电器来完成对用电器的控制功能,通过光电耦合器将单片机的弱电信号与强电信号隔离,再通过三极管对继电器进行控制,从而一些稍大功率的用电器就可以得到控制了。图7 继电器控制模块3.5 基于openwrt的路由中继系统的设计作为智能家居控制系统的核心功能,就是通过网络来传输信息,那么我们怎么使用网络来传输消息呢。因为我们的设备不可能单
20、独占用一个ip地址,我们仅仅将设备赋予了一个mac地址,我们仅仅可以将设备公开在内网中。所以我们需要使用一款路由器来进行nat穿越功能,而市场上普通的路由器系统都无法完成批量产品的网络穿越功能,而且设置犯错,功能不稳定,因此本次设计一款基于openwrt系统的路由器linux系统,在系统架构中我们可以精简固件,通过添加固件程序来完成网络的转播功能,同时将其设置为小型服务器,添加许多其余可控功能。针对智能电源网络控制系统技术方案对本路由系统进行深度定制,定制方向包括功能实现、控制界面优化、登陆方式优化。功能:满足50米范围内3-4面墙壁的信号穿越,在信号保证的前提下,能够实现网络数据的分析转发,
21、并控制下一级安装有本系统的兼容设备。基于php的可视化界面的开发,突出登陆界面,界面内简约实现功能,大图标实现系统所需要的各项性能。基于网络的远程登陆管理界面,基于ssh登陆的scp命令,scp(具有security的文件copy),在本登陆方式下,可以看到本系统的运行内核文件目录。本次编写的linux系统的版本号可以在程序界面看到,openwrt_linux_qw,定制版本为春兰空调界面,这里就没有专门为本次毕业设计修改操作界面。硬件的实物图:图8 路由系统硬件实物图对于本次设计的路由系统,我们提供了一个可视化的操作界面取代了使用复杂的命令行界面,下面简单介绍一下这个系统内部页面的设置功能,
22、系统web端的设置和控制:1、计算机通过有线或者无线方式连接到本路由系统,2、打开浏览器,输入管理地址192.168.8.1(可更改)图9 路由系统管理地址3、等待系统管理界面初始化后进入系统欢迎界面图10 路由系统欢迎界面点击logo图标或管理界面文字,进行登录,输入用户名及密码。图11 路由系统登录界面点击登录,进入到路由管理界面图12 路由系统菜单界面第四章 系统软件的设计软件的设计是该系统的一个重要组成,该系统不单纯是模拟电路或者数字电路,直接就能通过电路就能工作,单片机需要编程才能按照我们的意愿进行工作。因此系统软件的设计在本次的毕业设计中是必不可少的部分。4.1 keil开发环境本
23、次使用的是51单片机,所以我选择可keil 4 (arm版)作为单片机程序的开发环境。keil c51集成开发工具是高度集成的,功能强大的,具有c编译器、宏汇编、连接器、库管理等各种我们需要用到的工具,我们可以使用c语言或者汇编语言对单片机进行编程。而keil对c语言的支持使得我们的编程变得非常简单。并且具有方便移植和可阅读性,性能完美。4.2 通讯协议本次的毕业设计中,我们主要设计的产品是面向工业控制和智能家居控制的,所以产品的稳定性和复杂环境对产品的外界影响力决定了产品的性能,所以,本次的系统的传输过程中,我们使用的通讯协议要适合于各种场合使用,同时我们的产品是面向大众的,所以最好能够兼容
24、市场上原有的通讯协议,我们自定义了一款数据通信协议,在本协议中我们定义了一个不等长度的数据区,哦你过来移植目前现有的通讯协议,通过测试,兼容了目前基本上所有的通讯协议格式。本次使用的通讯协议中,我们使用了引导字节、起始字节、设备识别码、数据长度字节、数据区(原有通讯协议全部字节)、校验码、结束符。经过多次的测试我们在实践中得到了一个相对比较稳定的引导字节和起始字节,在这样的引导下,我们能够放方便的判断协议的准确性,在严重干扰的情况下,我们可以通过这个协议尽可能减少通讯过程中的误码率。该协议的另一个特点是在我们继承的协议中添加了设备的识别码,该识别码可以作为以后产品的拓展功能,比如说我的系统中有
25、n+个设备在使用这个通讯协议的时候,我们可以通过修改识别码来将不同的产品进行分类处理。这样我们的软件在统计每一个型号产品的时候就可以直接进行单独的同型号设备的访问了。该通信协议的协议内容如下:表 1 通信协议的定义引导字节0xfe 0xfe 十六进制 任意多个字节起始字节 0x68 十六进制 1个字节 固定为0x68识别码用于区分询问地址帧、返回地址帧、设备控制帧、设备返回帧。1个字节数据长度数据区的字节个数 1个字节,十六进制格式数据区下面“远程控制通讯协议”的整个数据帧,参看下面通讯协议,“数据长度”个字节校验码从68开始到“数据区”最后一个字节的加和,取低八位,1个字节结束符0x16 1
26、个字节,固定为0x164.3 下位机程序设计在下位机中,我们使用了一个温湿度传感器,通过移植该芯片的驱动程序到程序中,我们可以通过串行命令来测试当前的温湿度值,在下位机中我们需要进行单片机驱动的移植,调用stm32的库文件到系统中去,并进行继电器输出的定义,将端口进行漏极输出。下位机中主要包含一些文件:主函数、温湿度传感器(dht11)、stm32的库驱动、继电器的驱动、通讯协议的移植、时钟的初始化。通过编译并下载该程序到stm32中,通过串口来测试我们的命令是否有效,通过外界信号的干扰来测试我们通讯协议的完整性和抗干扰性。4.4 上位机程序设计在上位机的设计中,我们使用了vc语言来进行程序的
27、编写,在程序的设计界面中,我们设置了几个功能区域:环境参数的采集、串行口的选择连接、开关的集中控制、电源信息的读取、集体设置定时参数、集体设置电流参数、每一路电控参数、每一路电流及定时参数设置、提示消息界面。首次使用,软件会扫描计算机当前的串口,并全部枚举在串口下拉菜单中,选中我们当前调试串口,点击连接,就会自动连接到我们的单片机主控板,同时返回第一次测试的环境量(温湿度、电控参数),通过设置按钮,我们可以分别设置每一路的电控参数,也可以集体进行统一设置。软件的信息如图所示:图13 关于智能电源软件的操作图如图所示:图14 软件主界面第五章 系统调试5.1 系统调试的硬件问题在本次的毕业设计中
28、,我们需要对单片机进行编程,需要移植stm32的库文件,然后去配置stm32的内存单元,在调试这部分的时候,由于长时间没有使用该型号的单片机,所以又一步一步阅读了该芯片的芯片手册,一步一步配置了该芯片的引导函数,配置了具体的型号配置。很重要的一点是,在不断的调试过程中提高了我们发现问题和运用理论知识解决问题的能力。通过软件的不断调试和硬件电路的不断调试修改,修正所有发现的错误,并通过各种方式来排除这些故障。通过本次的毕业设计和不断的调试处理,自己总结了一些调试方法:我们不管在做硬件的调试还是做软件的调试的时候,我们都应该分模块进行调试,程序编写的时候就分模块进行调试这样更能方便我们的整个系统的
29、运行。系统实物图:图15 硬件实物图参考文献1 徐惠民,安德宁.单片微型计算机原理、接口及应用.第二版m.北京:北京邮电大学出版社.2000.2 李建忠.单片机原理及应用m.西安:西安电子科技大学出版社.2007.3 胡汉才.单片机原理及其接口技术学习辅导与实践教程m .北京:清华大学出版社.2003.4 夏路易,石宗义.电路原理图与电路板设计教程m.北京:北京希望电子出版社.2002.5 谭浩强编著.c程序设计.北京:清华大学出版社1999年6 美 berger,a.著吕骏译嵌入式系统设计电子工业出版社,2002.97 嵌入式系统设计教程,马洪连等,电子工业出版社,2006.68 周立功著.
30、arm嵌入式系统基础教程m.北京:北京航空航天大学出版社,2005.59 杨刚主编,32位嵌入式系统与soc设计导论(第2版),电子工业出版社,2011.110李宁.基于mdk的stm32处理器开发应用北京航空航天大学出版社. 2008年11duckmyung, yuseong, daejeon. modified multilevel inverter employing half- and full-bridge cells with cascade transformer and its extension to photovoltaic power generation. 2010:3
31、05-71912konstantin turitsyn ;petr sulc ;scott backhaus ;michael chertkov. options for control of reactive power by distributed photovoltaic generators.2011, 99(6)13h. el fadil ;f. giri. climatic sensorless maximum power point tracking in pv generation systems.control engineering practice :2011, 1914
32、 omar m.k., hasegawa-johnson m., levinson s., gaussian mixture models of phonetic boundaries for speech recognition, automatic speech recognition and understanding, 2001. asru 01. ieee workshop on,9-13 dec. 2001致 谢通过本次的毕业设计,我基本完成了设计之初的设计思路,在设计电路的时候遇到了多个问题,通过查阅资料和咨询同学,基本上解决了所有遇到的问题,并把这些问题一一搞清楚了,因此这次的
33、毕业设计是对我自己的学习能力的一种衡量。这次毕业设计中我的专业技术知识得到了提高,以前的知识仅仅是一些皮毛和基础知识,我们需要通过实践来拓展我们的个人综合实力,只有通过了这次毕业设计,我才对我自己的单片机编程和基本的硬件设计有了一个简单的认识。不再害怕遇到这些问题,不再是那种比较盲目的状态。因此,要在这里感谢所有在我的毕业设计中给我提供帮助的老师和同学,没有你们的帮助,我就可能无法快速准确的完成我的毕业设计,正是因为你们的帮助,我才一点点的学到了越来越多的专业知识。同时,再次要感谢本次毕业设计中参考的所有的专业技术文档,没有你们的研究,我也无法在这么短的时间内的到灵感,在本次论文中部分引用了你
34、们的一些专业知识,所以再次向你们提出真挚的感谢!在本次毕业设计的过程中,我的一些同学及老师也为我论文的写作提供了帮助,他们为我付出了真心和努力,所以在此向帮助过我的人表示谢意! 感谢导师给我的帮助,在毕设的实施过程中给予我一些教导和帮助,使我懂得了很多以前没注意的细节问题,对我本身的综合能力的提高起到了帮助作用。感谢老师们的尊尊教诲,感谢老师的无私奉献,感谢所有在毕设过程中帮助过我的老师!附 录原理图pcb图主函数程序:#include includes.h void rcc_configuration(void); int main(void) rcc_configuration(); in
35、itdht11(); initrelay(); initcomunication(); initcurrent();initwifi(); initrtctime(); while(1) processuart2data(); procurrentvalue(); sendmessagetopc(); void rcc_configuration(void)typedef enum failed = 0, passed = !failed teststatus; errorstatus hsestartupstatus; rcc_deinit(); rcc_hseconfig(rcc_hse_
36、on); hsestartupstatus = rcc_waitforhsestartup(); if(hsestartupstatus = success) rcc_hclkconfig(rcc_sysclk_div1); rcc_pclk2config(rcc_hclk_div1); rcc_pclk1config(rcc_hclk_div2); flash_setlatency(flash_latency_2); flash_prefetchbuffercmd(flash_prefetchbuffer_enable); rcc_pllconfig(rcc_pllsource_hse_di
37、v1, rcc_pllmul_9); rcc_pllcmd(enable);while(rcc_getflagstatus(rcc_flag_pllrdy) = reset) rcc_sysclkconfig(rcc_sysclksource_pllclk); while(rcc_getsysclksource() != 0x08) 通信协议程序:#include includes.hu8 uart2state=0;u8 uart2cs=0;u8 uart2len=0;u8 uart2flag=0;extern u8 dht11datas5;uart2buf_typedef getuart2d
38、atabuf;uart2send_typedef uart2senddata;extern settimeflag_typedef settimedoornums;extern settimeflag_typedef allset;extern current_typedef doorcurrentdoornums;void initcomunication(void)gpio_inittypedef gpio_initstructure; usart_inittypedef usart_initstructure; nvic_inittypedef nvic_initstructure; r
39、cc_apb2periphclockcmd(rcc_apb2periph_gpioa , enable); rcc_apb2periphclockcmd(rcc_apb2periph_usart2, enable); gpio_initstructure.gpio_pin = gpio_pin_2; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_af_pp; gpio_init(gpioa, &gpio_initstructure); gpio_initstr
40、ucture.gpio_pin = gpio_pin_3; gpio_initstructure.gpio_mode = gpio_mode_in_floating; gpio_init(gpioa, &gpio_initstructure); usart_initstructure.usart_baudrate = 9600; usart_initstructure.usart_wordlength = usart_wordlength_8b; usart_initstructure.usart_stopbits = usart_stopbits_1; usart_initstructure
41、.usart_parity = usart_parity_no; usart_initstructure.usart_hardwareflowcontrol = usart_hardwareflowcontrol_none; usart_initstructure.usart_mode = usart_mode_rx | usart_mode_tx; usart_init(usart2, &usart_initstructure); usart_itconfig(usart2, usart_it_rxne, enable); usart_cmd(usart2, enable); nvic_se
42、tvectortable(nvic_vecttab_flash, 0x0); nvic_initstructure.nvic_irqchannel = usart1_irqn; nvic_initstructure.nvic_irqchannelpreemptionpriority = 0; nvic_initstructure.nvic_irqchannelsubpriority = 0; nvic_initstructure.nvic_irqchannelcmd = enable; nvic_init(&nvic_initstructure); void getcmddata(void)
43、u8 rxbuffer; if(usart_getitstatus(usart2, usart_it_rxne) != reset) usart_clearitpendingbit(usart2, usart_it_rxne); rxbuffer = usart_receivedata(usart2); switch(uart2state) case lead_state: if(rxbuffer=0xfe) uart2state=start_state; break;case start_state: if(rxbuffer=0x68) uart2state=type_state; uart
44、2cs=0x68; else if(rxbuffer != 0xfe) uart2state=lead_state; break;case type_state: getuart2databuf.type=rxbuffer; uart2cs+=rxbuffer; uart2state=addr1_state;break;case addr1_state: getuart2databuf.macaddr0=rxbuffer; uart2cs+=rxbuffer; uart2state=addr2_state;break;case addr2_state: getuart2databuf.maca
45、ddr1=rxbuffer; uart2cs+=rxbuffer; uart2state=addr3_state;break;case addr3_state: getuart2databuf.macaddr2=rxbuffer; uart2cs+=rxbuffer; uart2state=addr4_state;break;case addr4_state: getuart2databuf.macaddr3=rxbuffer; uart2cs+=rxbuffer; uart2state=addr5_state;break;case addr5_state: getuart2databuf.m
46、acaddr4=rxbuffer; uart2cs+=rxbuffer; uart2state=addr6_state;break;case addr6_state: getuart2databuf.macaddr5=rxbuffer; uart2cs+=rxbuffer; uart2state=cmd_state;break;case cmd_state: getuart2databuf.cmd=rxbuffer; uart2cs+=rxbuffer; uart2state=len_state;break;case len_state: getuart2databuf.len=rxbuffe
47、r; uart2cs+=rxbuffer; if(getuart2databuf.len) uart2len=0; uart2state=data_state;else uart2state=check_state; break;case data_state: getuart2databuf.datauart2len=rxbuffer; uart2cs+=rxbuffer; uart2len+; if(getuart2databuf.len 24;uart2senddata.state1=cnt16;uart2senddata.state2=cnt8;uart2senddata.state3=cnt; lastcnt1=rtc_getcounter(); if(!allset.action) for(i=0;idoornums;i+) uart2senddata.settimestatei=settimei.action; if(settimei.action) lastcnt2=settimei.settime-lastcnt1; uart2senddata.settimei0=la
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预防近视安全班会
- 高效的复习时间管理与CFA试题及答案
- 中班科学蚂蚁课件
- 2024年特许金融分析师考试解压小技巧试题及答案
- 常见足病的护理
- 职场礼仪培训教程
- CFA复习的资源选择技巧试题及答案
- 八年级上册《分式方程的实际应用-销售及其他问题》课件与练习
- 化工冬季安全知识
- 房建库房工作总结
- 世界职业院校技能大赛中职组“无人机操控与维护组”赛项考试题及答案
- 兽医屠宰卫生人员考试题库及答案(415题)
- 四环素类抗菌药物儿科临床应用专家共识(2024年版)
- 《海尔集团绩效管理案例研究》
- 人工智能 AI1章 概述课件
- 2023年水利部黄河水利委员会招聘考试真题
- 2023年陕西省宝鸡市陇县公路局公务员考试《行政职业能力测验》历年真题及详解
- 2022部编版道德与法治四年级下册《我们的好朋友》教学设计
- 中国超重肥胖医学营养治疗指南
- JJF(京) 113-2023 食品重金属检测仪校准规范
- 爆破工培训考试试题及答案
评论
0/150
提交评论