毕业设计(论文)-车载式路面平整度检测以及地砖松动检测仪.doc_第1页
毕业设计(论文)-车载式路面平整度检测以及地砖松动检测仪.doc_第2页
毕业设计(论文)-车载式路面平整度检测以及地砖松动检测仪.doc_第3页
毕业设计(论文)-车载式路面平整度检测以及地砖松动检测仪.doc_第4页
毕业设计(论文)-车载式路面平整度检测以及地砖松动检测仪.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

车载式路面平整度检测以及地砖松动检测仪专 业 : 电子信息技术及仪器 组 长 : 指导老师 : 完成时间 : 2012年5月11日 32车载式路面平整度检测以及地砖松动检测仪摘要介绍了一种路面平整度及地砖松动检测方法,利用惯性式平整仪原理。设计了一台装备有激光传感器,倾角传感器,声音传感器以及自动喷染料装置的测定智能三轮小车,同时与智能小车配套的还有终端主机数据处理系统。该系统可检测出路面的质量是否满足设计要求而实现现场检验,并对检测结果进行标记以及处理该装置体积小,测量精度高,数据处理能力强,自动化控制程度高,既可作为实验室检测设备,又可在现场进行检验。关键词:STM32单片机,激光传感器,倾角传感器SCA60C,声音传感器,傅里叶变换,上位机软件,目录1. 引言.42. 系统功能简介.43. 检测装置的设计与选择.43.1 主控芯片的选择.43.2 路面平整度检测原理的选择.53.3 测距传感器的选择.53.4 喷染料技术的选择.53.5 车载装置的选择.54. 传感器介绍.54.1 激光传感器.54.2 倾角传感器SCA60C.64.3 声音传感器.75. 理论分析设计与计算.85.1 倾角传感器SCA60C的电路与理论分析.85.2 激光传感器与倾角传感器的配合使用.95.3 声音传感器的外围设计与计算.95.4 喷染料模块的电路控制.105.5 染料存储情况检测装置.116. 数据的处理与分析.116.1 国际平整度指标(IRI).116.2 声音信号的数据处理.126.3 Matlab数据处理软件.126.4 上位机软件的开发.127.程序软件的设计与分析.8.系统装置总体流程图.139.方案优缺点分析.149.1 方案优点.149.2 系统设计存在的缺点.1510.方案的扩展分析.1511.参考文献.1512.附录.1.引言平整度及松动是路面施工质量与服务水平的重要指标之一。路面平整度及地砖松动的检测在公路路面质量及养护管理质量检测,评定工作中占有重要地位。路面的平整度与路面各结构层次的平整度状况有一定的关系,可将各结构层次的平整度效果反应到路表面上。由于路面面层直接与车辆和大气接触,不平整的表面以及松动的地砖将会增大行车阻力,使车辆产生附加的冲击作用,进而使路面和车辆的损耗加剧。同时,不平整的路面还会积滞雨水,加速路面的破坏。因此,实现快捷、客观、准确、高效率的检测和评定路面的平整度以及地砖的松动,是公路施工和养护管理的一个非常重要的环节。2.系统简介本文介绍了一种对路面平整度以及地砖松动进行检测的智能三轮小车,该仪器是以ST公司推出的STM32系列的STM32f103RBT6作为主控芯片。工作时,小车以恒定的速度在路面上行驶,安装在小车底盘上的激光传感器用于检测路面与车体之间的动态距离,加上倾角传感器检测得到车体的垂直加速度,然后对垂直加速度由双积分器完成二次积分获得车体的动态垂直弹跳,双积分器的输出和激光传感器的输出的组合即可获得路面纵断面剖面的曲线数据,MCU将其模拟信号以一定的时间周期滤波采集并将其转化为数字信号,转化后的数据将通过无线发送的方式传送给用户终端机(一台计算机),终端机上的上位机软件可以利用传送过来的数据绘制出路面纵断面剖面曲线图以及经Matlab软件数据处理计算后显示国际平整度指标(IRI),同时如果计算结果不符合平整度指标,终端机将会向智能小车发送喷红色染料指令,MCU接受指令之后,通过控制喷墨机进行喷红色染料。对于地砖松动的检测,我们将通过安装在小车底部的声音传感器时时采集由路面返回的声音信号,将其转换为电压信号后对其进行放大滤波处理后进行采集,并将数据通过无线发送给用户终端机,此时终端机上的上位机就可以对数据进行记录并用Matlab软件进行傅里叶变换处理,得到并绘制声音信号的频域信号曲线,根据处理结果判断是否存在松动现象。若存在松动现象,该装置将会自动喷洒黄色染料以作标记。这个仪器在工作过程中,若存在染料用完的情况,安装在染料储罐瓶瓶内部的闭合回路检测系统将会断开,STM32单片机检测到电路断开之后小车将停止前进,停止工作,并向终端机发送警报信号。在工作结束之后,终端机上将会对所有数据进行自动处理,得出最后检测结果。并且终端机上将会记录并显示整个检测过程的松动地砖数量以及不符合平整度要求的路段数。3.检测装置的设计与选择3.1 主控芯片的选择STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。 STM32f103C8有128KB的FLASH,20KB的SRAM,2个SPI,3个串口,1个USB,1个CAN,RTC,DMA,2个12为ADC(16通道),4个16位定时器,51个可用IO口,并且STM32的定时器除了TIM6和TIM7外,其他的定时器都可以产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生多达7路的PWM输出,通用定时器可以同时产生多达4路的PWM输出。STM32芯片用3.3V供电。STM32f103C8的这些配置安全可以满足该系统的需求。这些配置无论到哪里都是很不错的,更重要的是其价格较低,为18元左右的零售价,所以选择它作为我们的主芯片。3.2路面平整度检测原理的选择目前工程中比较常用的检测路面平整度仪器根据原理可以分为以下几类:断面式仪、 反应式仪以及惯性式仪等三种。在这些方法中,断面式平整仪的缺点是必须依赖人工操作测量,速度较慢,无法应用于网层级的路面平整度测量。反应式平整仪的缺点是非直接对路面轮廓进行测量,而是测量车辆对于路面轮廓变化的反应,此反应可能会受车辆本身的悬吊系统或避震系统的影响;另外此类仪器需以固定速度进行测量,或者要研究出速度校正模式,这是非常不方便的。相比之下,惯性式平整仪适合搜集大量的路面平整度资料,明显地改善了断面式平整仪的缺点,但同时又具有断面式平整仪测量原理上的优点,并且是对路面直接进行轮廓测量,确实矫正了反应式平整仪的缺点,准确性较反应式平整仪为高,也具有快速检测的优点。因此,我们选择以惯性式仪作为本系统装置的核心原理。3.3测距传感器的选择在利用惯性式仪的原理的平整度检测仪中,有利用超声声纳测距,红外测距,激光测距三大类。声纳系统测距由于检测距离有限,不超过15m,并且多次反射将会带来串扰,会严重影响测量的精度。而红外测距的检测量程范围只有1018cm,更加无法满足系统要求。相比之下,激光传感器具有测量范围广,扫描频率高,精度高等优点。因此我们选择激光传感器作为测距传感器。3.4 喷染料技术的选择该系统的功能之一就是要实现对于地砖的松动以及不符合平整度指标的区域要用不同颜色的染料进行标志。为了实现该系统功能,本系统采用喷墨打印机中的喷墨技术对颜料进行喷洒。采用该方案与使用普通的水泵喷染料相比,有低功耗,反应速度快等优点。同时考虑到该系统以智能小车作为车载平台,采用喷墨原理进行喷染料,还有染料存贮器占用体积小的优点。3.5 车载装置的选择该装置的检测模块将安装在一辆小车上,考虑到本系统需要一个稳定的小车运行速度,以保证模块在检测过程中具有一定的周期性,因此本系统不考虑用自动车作为动力牵引,因为自行车在行驶过程中难以控制车速为匀速,相比之下,智能玩具小车比较容易控制其匀速自动行驶。4.传感器介绍4.1 激光测距传感器激光传感器如图1图1其工作原理是:先由激光二极管对准目标发射激光脉冲。经目标反射后激光向各方向散射。部分散射光返回到传感器接收器,被光学系统接收后成像到雪崩光电二极管上。雪崩光电二极管是一种内部具有放大功能的光学传感器,因此它能检测极其微弱的光信号。记录并处理从光脉冲发出到返回被接收所经历的时间,即可测定目标距离。其工作原理图图2:图24.2 倾角传感器SCA60C图3倾角传感器如图3经常用于系统的水平测量,从工作原理上可分为“固体摆”式、“液体摆”式、“气体摆”三种倾角传感器,倾角传感器还可以用来测量相对于水平面的倾角变化量。 基本工作原理:理论基础就是牛顿第二定律,根据基本的物理原理,在一个系统内部,速度是无法测量的,但却可以测量其加速度。如果初速度已知,就可以通过积分计算出线速度,进而可以计算出直线位移。所以它其实是运用惯性原理的一种加速度传感器。 当倾角传感器静止时也就是侧面和垂直方向没有加速度作用,那么作用在它上面的只有重力加速度。重力垂直轴与加速度传感器灵敏轴之间的角就是倾斜角。如图4 图44.3 声音传感器图5声音传感器(如图5)的作用相当于一个话筒(麦克风)。它用来接收声波,显示声音的振动图象。但不能对噪声的强度进行测量。工作原理:该传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-3V的电压,经过A/D转换被数据采集器接受,并传送给计算机。 5.理论分析设计与计算5.1倾角传感器SCA60C的电路与理论分析倾角传感器SCA60C的外部电路图如图6图6SCA60C处于水平位置时,Vo端输出+0.5V的模拟电压。传感器SCA60C仅可精确检测到090度的角度范围,当平衡板转到使角度传感器与水平面成90度的角度时,此时Vo端输出+5V的模拟电压。在090度的倾角范围内,Vo端输出的是正比于倾角大小的+0.5+5V的模拟电压信号,当平衡板转动到使角度传感器与水平面间的角度从90度到180度的范围变化时,输出端Vo输出的是从+5V依次变化到+0.5V 的模拟电压信号,因此通过测定传感器SCA60C输出端Vo电压的大小即可确定平衡板与水平面的夹角。根据电压的变化趋势就可以知道平衡板是处于上坡还是下坡。此外,由于该系统要用STM32f103RBT6内部自带的12位AD模数转换器对SCA60C的输出信号进行采集,但是,STM32f103RBT6内部自带的12位AD的基准电压只有3.3V,无法对SCA60C输出的3.35V的电压信号进行采集,为了解决这个问题,必须设计一个串联式分压电路,如图7,其中V0为倾角传感器的信号输出端,A0为单片机的GPIO口信号采集端,其中R1和R2为两个精准电阻。经分压后的采集电压信号将会缩小到原来的0.6陪,并且满足单片机采集电压的要求。图75.2 激光传感器与倾角传感器的配合使用激光传感器用于检测路面与车体之间的动态距离,加上倾角传感器检测得到车体的垂直加速度,然后对垂直加速度由双积分器完成二次积分获得车体的动态垂直弹跳,双积分器的输出和激光传感器的输出的组合即可获得路面纵断面剖面的曲线数据,其工作原理图图8图85.3 声音传感器的外围设计与计算首先,为了更好的区分地砖松动时与没有松动时的声音区别,在机械上,该系统在声音传感器附近安装有一个金属小球,它与小车的轮子处于同一水平面上,起到扩大声音的作用。同时声音传感器只是将声音信号转化为微小的电压信号,为了方便单片机的采集,我们需要对电压信号先进行放大处理,然后通过带通滤波器进行滤波处理,再经过AD数模转换器进行处理。对于放大处理,本系统采用功能强大的集成运放芯片TL082ACP。TL082ACP的输入失调电压的最大值为15mv,宽增益带宽为4MHz,高转换速率为13 V /s,高输入阻抗:1012。TL082ACP的以上功能均可以满足本系统的要求,因此可以选择该芯片进行放大处理。其外部的信号放大电路如图9,以及带通滤波器放大电路如图10图9图105.4 喷染料模块的电路控制该系统采用当今喷墨机中较为先进的喷墨技术DOD式收缩管型压电式喷墨技术。该技术有S.L.Zoltan of Clevite 公司于1970年发明,1974年获得美国专利,1977年Seimens公司将其应用于喷墨头产品PT-80。其工作原理是,控制电路所施加的电压引起陶瓷压电管道变形收缩,管内染料受压喷出。如图11图11由于该装置喷染料模块不需要精准控制喷墨量的多少,因此我们只控制喷墨管是否喷墨。若STM32单片机输出高电平引起压电陶瓷管道变形收缩,则喷头喷墨,若STM32单片机输出低电平则不会引起压电陶瓷管道的变形,喷头不会喷墨。5.5 染料存储情况检测装置为了使整个装置系统更加自动化控制,本系统还在染料存储罐内底部安装有闭合回路检测电路,用于检测染料是否用完。本系统采用具有导电性的染料,当染料在存储罐中的存储液位大于检测电路的位置时,电路导通,此时STM32单片机采集到低电压信号,一切正常运行。当染料存储液位低于检测电路的位置,检测电路断开,STM32单片机采集高电压信号,表示瓶内已经没有染料,系统停止工作。如图12,图中A13为STM32单片机信号采集口,Y表示染料的存储量。图126.数据的处理与分析6.1 国际平整度指标(IRI)世界银行在20世纪80年代初,在巴西进行了大规模的平整度检测技术对比试验,确立了国际平整度指数(IRI)在理论上和应用上统一了平整度检测的客观尺度。通过标定实验,可以建立各种指标之间的相关关系,进行互相换算。国际平整度指数IRI是一项标准指标,其概念是以四分之一车在速度为80km/h时的值为IRI值,单位用m/km。IRI其实是一个无量纲的指数,因为它来自于四分之一车模拟统计值,但习惯上用m/km表示。我们通过IRI来对路面平整度指标进行评定。本系统通过对数据的处理分析,以IRI作为路面平整度的评定指标具有一定的权威性以及可行性。6.2 声音信号的数据处理对于STM32单片机传传输过来的声音信号,根据本小组成员已有理论知识分析,可以根据声音传感器采集到的声音信号判断是否松动,其原理是松动地砖与普通地砖所发出的声音频率不同,因此,采集声音信号的目的是通过判断声音频率的差别从而判断松动情况,但是声音频率在时域分析中比较困难将其算出,因此,该系统采用Matlab软件利用傅里叶变换将时域信号转换为频域信号。从而可以简便的求出声音频率。6.3 Matlab数据处理软件MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。本系统将通过上位机软件与Matlab相连接,利用Matlab强大的数据处理功能对采集到的信号进行处理。6.4 上位机软件的开发该系统的上位机软件由本小组自主研发,是配合该装置智能小车的专用软件。在经过Matlab软件数据处理之后,我们将通过上位机软件绘制曲线,曲线界面如下,将会显示声音频域曲线,路面纵断曲面图,倾角传感器倾角图以及激光测距动态距离曲线。同时为了提高用户与该装置的交互性,上位机上还可以显示红色染料和黄色染料的剩余量,松动地砖和凹凸不平地砖的个数。图13为本系统上位机的工作界面 图137. 程序软件的设计分析对于本系统检测能否顺利进行的关键一步就是对于各种传感器所采集的信号能否进行顺利的读取与传输。因此,利用STM32f103RBT6芯片内部自带的16通道12位AD对模拟电压信号进行采集是至关重要的一步。而本小组成员对于该功能的程序设计已经能够熟悉掌握(AD转换程序见附录)。整个系统程序设计的另一个关键就是数据的传输。这部分本系统将采用无线串口数据传输,STM32f103RBT6有三个串口输出功能,足以满足整个系统的数据传输需求。并且可以通过对传输速率的控制,从而减少数据传输错位现象的出现。而且本小组成员同样已经能够熟悉的掌握STM32串口通讯的程序编写(串口通讯程序见附录)。8.系统装置总体流程图整个系统的总体流程图如图14图149.方案优缺点分析9.1 方案优点 (1)该系统采用先进的激光传感器和倾角传感器相结合进行路面断面曲线分析,大大提高了检测的精度,并且激光传感器在路面平整度检测方面的运用是当今世界路面平整度检测方面的主流,这个对于以后该装置在市场上的推广具有很大的市场前景。 (2)该系统采用3.3V供电的低功耗单片机STM32f103RBT6作为主控芯片,符合当今社会环保节能的新理念。 (3)该系统整个过程自动化控制程度高,利用电脑终端机实现对智能小车的完全自动化控制,在很大程度上提高了检测的效率与精度,并且高效智能的数据处理分析,大大提高了用户的分析效率。整个系统与用户之间具有很好的交互性。用户对于该装置的使用简单易懂。 (4)该装置的智能小车体积小,在检测过程中不容易忽略检测路段,提高了检测数据的真实性。并且不仅可作为实验室检测设备,还可在现场进行检验。9.2 系统设计存在的缺点(1) 由于本系统采用了激光传感器,其优点很明显,缺点也很明显,那就是激光传感器的价格昂贵,比如说由日本HOKUYO公司推出较为廉价的激光传感器URG-04LX系列也要约2000美元。但是相信随着激光传感器的不断发展以及人们生活水平的不断提高,价钱将不再是个问题。(2) 由于该系统存在大量的无线数据传输,因此对于无线通讯的要求相当高,这个也许会在传输过程中存在数据损失,数据传输错位或者是传输受到干扰的问题。10.方案的扩展分析对于本装置系统由于智能小车大部分时间均在露天且是晴天进行工作,因此对于装置的供电系统可以考虑用太阳能供电,在智能小车的顶部安装一块太阳能电池板吸收太阳能转化为电能对整个小车装置进行供电。对于本装置的终端机是一台装有该装置独有的上位机软件的电脑,由于智能小车大部分时间在露天工作,而电脑则由于光线原因等不适合在露天工作。因此可以对上位机软件进行改进处理,将其改装到一台手持终端机上或者是智能手机上,如此改进更加方便了用户的使用。 11.参考文献1 陈歆贤 路面平整度检测技术 交通标准化 总期145期2 杨炯 路面平整度检测原理及检测方法 科技资讯 2009 NO.193 陆键,王辰良,潘宝堂 路面质量检测技术及应用 论文发表在2007年国际道路与机场路面技术委员会特别会议(中国路面施工与养护技术大会),北京,2007年3月16-17日 4 黄文兴 声音信号放大设计 5 喷墨技术原理12. 附录多通道ADC转换的ADC.h文件如下#ifndef ADC1_H#define ADC1_H#define ADC_COLLECT_TIMES 20 /采集电压次数,多次采集取平均/*/函数名称:void ADC1_RCC_Configuration(void)/功能:配置时钟/参数:无/ 返回值:无/*void ADC1_RCC_Configuration(void);/*/函数名称:void ADC1_GPIO_Configuration(void)/功能:配置GPIO输入,输出/参数:无/ 返回值:无/*void ADC1_GPIO_Configuration(void);/*/函数名称:void ADC_Configuration(void)/功能:配置AD寄存器/参数:无/ 返回值:无/*void ADC1_Configuration(void);/*/函数名称:void DMA_RCC_Configuration(void)/功能:配置DMA时钟/参数:无/ 返回值:无/*void DMA_RCC_Configuration(void);/*/函数名称:void DMA_ADC1_Configuration(void)/功能:配置DMA寄存器/参数:无/ 返回值:无/*void DMA_ADC1_Configuration(void);/*/函数名称:u16 Get_Volatge (u8 channel)/功能:得到采集到的电压/参数:u8 channel-通道号/返回值:_AD_Value-采集到的电压/*u16 Get_Volatge (u8 channel); #endifAD转换的ADC.c 文件如下#include #include sys.h#include delay.h #include myGPIOType.h#include ADC1.h#define ADC1_DR_Address (u32)0x4001244C) /ADC1外设基地址u16 ADC_ConvertedValue4; /DMA内存基地址/*/函数名称:void ADC1_RCC_Configuration(void)/功能:配置时钟/参数:无/ 返回值:无/*void ADC1_RCC_Configuration(void) /RCC_APB2PeriphClockCmd()函数功能:使能或者失能 APB2 外设时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1, ENABLE);/使能GPIOA,ADC1时钟/*/函数名称:void ADC1_GPIO_Configuration(void)/功能:配置GPIO输入,输出/参数:无/ 返回值:无/*void ADC1_GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; /声明、定义GPIO结构体GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;/选中0,2,3,4管脚GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;/管脚工作状态为模拟输入 GPIO_Init(GPIOA, &GPIO_InitStructure);/初始化外设GPIOA寄存器/*/函数名称:void ADC1_Configuration(void)/功能:配置AD寄存器/参数:无/ 返回值:无/*void ADC1_Configuration(void)ADC_InitTypeDef ADC_InitStructure;/声明、定义ADC结构体ADC_DeInit (ADC1); /将外设ADC1的全部寄存器重设为缺省值ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;/ADC1和ADC2工作在独立模式 ADC_InitStructure.ADC_ScanConvMode= ENABLE; /多通道扫描模式ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; /连续扫描模式ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;/转换由软件而不是外部触发启动ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; /ADC数据右对齐ADC_InitStructure.ADC_NbrOfChannel= 4; /ADC转换的通道为4个通道转换ADC_Init(ADC1, &ADC_InitStructure);/初始化外设ADC寄存器ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);/设置指定ADC的规则组通道为通道0,转化顺序和采样时间为55.5个周期ADC_RegularChannelConfig(ADC1, ADC_Channel_2,2,ADC_SampleTime_55Cycles5);/设置指定ADC的规则组通道为通道2,转化顺序和采样时间为55.5个周期 ADC_RegularChannelConfig(ADC1, ADC_Channel_3,3,ADC_SampleTime_55Cycles5);/设置指定ADC的规则组通道为通道3,转化顺序和采样时间为55.5个周期 ADC_RegularChannelConfig(ADC1, ADC_Channel_4,4,ADC_SampleTime_55Cycles5);/设置指定ADC的规则组通道为通道4,转化顺序和采样时间为55.5个周期ADC_DMACmd(ADC1, ENABLE); /使能ADC1的DMA请求ADC_Cmd(ADC1,ENABLE); /使能ADC1ADC_ResetCalibration(ADC1); /重置指定的ADC1的校准寄存器 while(ADC_GetResetCalibrationStatus(ADC1); /等待ADC开始工作 ADC_StartCalibration(ADC1); /开始校准ADC1 while(ADC_GetCalibrationStatus(ADC1); /等待校准完成 ADC_SoftwareStartConvCmd(ADC1, ENABLE);/软件触发转换/*/函数名称:void DMA_RCC_Configuration(void)/功能:配置DMA时钟/参数:无/ 返回值:无/*void DMA_RCC_Configuration(void) RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);/使能DMA时钟/*/函数名称:void DMA_ADC1_Configuration(void)/功能:配置DMA寄存器/参数:无/ 返回值:无/*void DMA_ADC1_Configuration(void) DMA_InitTypeDef DMA_InitStructure;/声明、定义DMA结构体 DMA_DeInit(DMA1_Channel1);/将外设DMA1的全部寄存器重设为缺省值 DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; /外设基地址 DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue; /内存基地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; /从外设中取数据 DMA_InitStructure.DMA_BufferSize = 4; /内存大小8个数据单位 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; /外设基地址不变 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; /DMA寄存器地址不变 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; /外设数据宽度16位 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;/DMA内存数据宽度16位 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;/DMA工作在循环缓存模式 DMA_InitStructure.DMA_Priority = DMA_Priority_High; /DMA通道11有高优先级 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; /禁止DMA数据从缓存到缓存 DMA_Init(DMA1_Channel1, &DMA_InitStructure);/数初始化DMA的通道DMA1_Channel1寄存器 DMA_Cmd(DMA1_Channel1, ENABLE); /使能通道DMA1_Channel1/*/函数名称:u16 Get_Volatge (u8 channel)/功能:得到采集到的电压/参数:u8 channel-通道号,这里为0到3/返回值:_AD_Value-采集到的电压/*u16 Get_Volatge (u8 channel)u32 Sum = 0; /局部变量Sum存储电压累计和u8 i = 0; /循环变量iu16 _AD_Value = 0; /局部变量_AD_Value存储采集到的电压值for ( i = 0; i ADC_COLLECT_TIMES; i+ )/循环ADC_COLLECT_TIMESSum = Sum + ADC_ConvertedValuechannel;/累计采集到的电压delay_ms(5); /延时5ms_AD_Value = Sum/ADC_COLLECT_TIMES*1000*(3.3/4096);/计算平均电压值return _AD_Value;/返回采集到的电压值Stm32 串口接收与发送程序串口接收发送USART3.h头文件程序如下#ifndef USART3_H#define USART3_H#include typedef u8 BYTE;#define UART_CMD_NAK0X00#define UART_CMD_ACK0X01#define UART_CMD_KEY_DOWN0x01#define UART_CMD_KEY_UP(UART_CMD_KEY_DOWN+1)#define UART_CMD_KEY_CHANGE(UART_CMD_KEY_UP+1)#define UART_CMD_BARVAL(UART_CMD_KEY_CHANGE+1)#define UART_CMD_PWR_SET(UART_CMD_BARVAL+1)#define UART_CMD_FREQ(UART_CMD_PWR_SET+1)#define UART_CMD_LED_LIGHT(UART_CMD_FREQ+1)#define UART_CMD_LED_DARK(UART_CMD_LED_LIGHT+1)#define UART_CMD_LED_GLITTER(UART_CMD_LED_DARK+1)#define UART_CMD_PAR_KEY_UPKEY_UP#define UART_CMD_PAR_KEY_DOWNKEY_DOWN#define UART_CMD_PAR_KEY_RESETKEY_RESET#define UART_CMD_PAR_KEY_TESTKEY_TEST#define UART_HEAD0XFE#define UART_TAIL(UART_HEAD-1)#define UART_SYN(UART_TAIL-1)#define UART_UNPACK_STATE_IDLE0#define UART_UNPACK_STATE_BEGIN(UART_UNPACK_STATE_IDLE+1)#define UART_UNPACK_STATE_SYN(UART_UNPACK_STATE_BEGIN+1)#define UART_UNPACK_STATE_GET(UART_UNPACK_STATE_SYN+1)#define UART_UNPACK_STATE_END(UART_UNPACK_STATE_GET+1)/*/函数名称:void USART3_RCC_Configuration(void)/功能:配置时钟/参

温馨提示

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

评论

0/150

提交评论