红外通信本科毕业设计.doc

上传人:laozhun 文档编号:4194530 上传时间:2023-04-09 格式:DOC 页数:23 大小:706.50KB
返回 下载 相关 举报
红外通信本科毕业设计.doc_第1页
第1页 / 共23页
红外通信本科毕业设计.doc_第2页
第2页 / 共23页
红外通信本科毕业设计.doc_第3页
第3页 / 共23页
红外通信本科毕业设计.doc_第4页
第4页 / 共23页
红外通信本科毕业设计.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《红外通信本科毕业设计.doc》由会员分享,可在线阅读,更多相关《红外通信本科毕业设计.doc(23页珍藏版)》请在三一办公上搜索。

1、 红外光通信装置学生:张海青 指导教师:刘强内容摘要:本装置设计的红外通信系统是以红外光作为传输媒质,利用STM32F103RBT6单片机程序及中断控制,完成A/D、D/A转换和同步传输。装置主要由发射部分和接收部分组成。红外通信可供室内和室外使用,具有较高的传输速度,干扰小,系统稳定、可靠、成本低廉、制作简单,在实际中有着很好的应用前景。关键词:红外通信 STM32 稳定 小干扰Infrared communication deviceAbstract:Infrared communication technology is a kind of close range wireless co

2、nnection technology, which USES infrared light as information media to transmit information. This device design of infrared communication system based on infrared light as the transmission medium, using STM32F103RBT6 microcontroller program and the interrupt control, complete A/D, D/A conversion and

3、 synchronous transmission. Device is mainly composed of transmitting and receiving part. Infrared communication is available for indoor and outdoor use, has high transmission speed, low interference, the system is stable, reliable, low cost, simple production, has a good application prospect in prac

4、tice.Keyword:Infrared communication STM32 stable Little interference.目 录1系统方案11.1处理器的论证与选择11.1.1 STM32内部所需的硬件结构:11.1.2 STM32部分的作用与工作原理11.2运算放大器的论证与选择21.3模数/数模转换的论证与选择22系统理论分析与计算22.1 发送模块的分析22.1.1 前置放大电路的分析22.1.2 红外发送模块32.2 红外发射中的计算32.2.1 发射频率计算32.2.2 A/D采集的频率计算32.2.3 发射头功率的估算32.3 红外接收中的计算42.3.1 接收头的

5、计算42.3.2 D/A转换的相关计算43电路与程序设计43.1电路的设计43.1.1系统总体框图43.1.2 发射子系统框图与电路原理图53.1.3 接收子系统框图与电路原理图73.2程序的设计93.2.1程序功能描述与设计思路93.2.2程序流程图104测试方案与测试结果134.1测试方案134.1.1硬件测试134.1.2 软件仿真测试134.1.3硬件软件联调134.2 测试条件与仪器134.3 测试结果及分析144.3.1测试结果144.3.2测试分析与结论15附录17红外光通信装置1系统方案本红外通信系统主要由CPU(STM32)模块、前置放大电路模块、发射器与接收器、5V电源供电

6、模块组成,各个模块的详细选择以及相关芯片的选型如下文所述。1.1处理器的论证与选择方案一:选择飞思卡尔公司的K60芯片,因为该芯片的主频很高,最高可以到达180MHZ。操作简单,设置方便,但是价格昂贵; 方案二:选择TI公司的430作为本系统的CPU。MS430因为是一款16位处理器,所以其处理字节高于51单片机的8位,并且其功耗也得以大大的降低。它内部不仅只有微处理器,还在同一个芯片上集成了数字电路和模拟电路,以此为了解决各种问题而提供了方案。片上资源较丰富,功能强大,速度较快,且低功耗。方案三:选择ARM公司的STM32F系列嵌入式芯片来作为该红外发射系统的CPU。STM32F103C是一

7、款基于M3内核的外部集成了多个外设和电路的一款新型的32位嵌入式微处理器,它无论在有无操作系统下动能进行工作的CPU,并且内部自带ADC模块,无需外加芯片的一款处理器,经常用于高速信号采集系统。综合以上三种方案,选择方案三。在我们结合本题后决定选择STM32,因为此题目所需要的主频该芯片完全可以满足,而且成本低廉。1.1.1 STM32内部所需的硬件结构:图1 STM32部分硬件结构图1.1.2 STM32部分的作用与工作原理1.1.2.1 中央处理器CPU是由控制器和运算器组成的。运算器可以进行加、减、乘、除四则运算法则的算术运算,还可以进行与、或、非等逻辑运算。而控制器的主要工作是掌握计算

8、机的各个部件,使之能井井有条地工作,换句话说就是读取指令和执行指令。而STM32是以M3为内核的一款32位处理器,在本次设计中主要使用的外设有GPIO、TIMER、ADC。 1.1.2.2 A/D、D/A模块STM32芯片内部集成了A/D模块,其主要功能是将数字信号转化成模拟信号,其分辨率越高信号的损失越小,但是其相应的转化时间也就越长,在这里我们选择了STM32内部12位自带的A/D,但是D/A模块选择了型号为TLC5615的芯片。 1.2运算放大器的论证与选择方案一:在运放的选择上我们也是花费了很多的功夫,开始选择的是LF353,因为此芯片是一款信号放大芯片,而且身边也有几块,所以第一选择

9、还是想到了它。方案二:后来又选择了5532芯片,其主要的原因是此题要求必须失真度小、信噪比高、频率特信好、输入阻抗高和输入阻抗低的。综合以上三种方案,选择方案二。1.3模数/数模转换的论证与选择方案一:AD和DA模块也让我们大费周折,开始选择使用TLC1549,此芯片是一个精度为10位的AD转换器,而且控制电路也很简单,但是这样会增加硬件电路的负担,可能会导致音频信号的失真。而对于DA模块进入考虑之中的就是TLC5615和TLC5616两个芯片,5615是一块12位精度的数模转换芯片,可以配合12精度的AD转换使失真降到最低。方案二:我们为了充分利用资源和采集音频信号需要精度高的要求,最后选择

10、了STM32自带的AD采集模块,采集精度为12位。而DA因为单片机本身不带,所以选择了与精度相同的DA模块TLC5615。综合以上两种方案,选择方案二。2系统理论分析与计算2.1 发送模块的分析 2.1.1 前置放大电路的分析 前置放大电路中我们选择了双电源音频放大芯片5532,而给给该芯片供电的部分则是选用A5050电源芯片来产生的一个正负5V电源。由于采集到的音频信号是很微弱的,所以需要对其进行放大。 2.1.2 红外发送模块日常生活中常见的红外二极管,其外形和普通发光LED物力特性一样,只是一般情况下的红外二极管发射管为白色,而接收管为褐色。并且红外管的管压降与普通二极管一样,其工作电流

11、小于20毫安。所以在一般的使用中为了保护二极管常常在回路中串联一定阻值的限流电阻。通过发射红外线去控制相应的装置时,其有效的通信距离与发射功率近似成正比。所以为了延长其通信的有效距离,通常使用软件协议或者硬件协议对其进行一定的规定,时期按照一定的时间规律发送脉冲信号,因为脉冲信号的能量比较高,这样就能增加红外光的有效通信距离。为了提高其有效通信距离就必须减小其协议中的脉冲占空比,这样就能提高红外管的发射功率。现在的家用电器,例如彩电的遥控器都是采用的红外管进行控制,而遥控器中的二极管的脉冲的占空比一般在25%;生活中大多数的电子产品的红外遥控器,脉冲占空比一般在10%左右。所以为了提高红外二极

12、管的发射功率即加大其传输距离的有效方法就是通过调小脉冲的占空比。我们生活中常见的红外发光二极管,按照其功率来划分可分为小功率(其功率10mW以下)、中等功率(其功率在10mW和50mW之间)和大功率(其功率在50mW以上)。这个电路的最主要的部分就是红外发射模块,红外光调制就是利用红外光为载体完成语音的无线传输。这种通信速度快、干扰小和可靠性高,适合多种近距离无线通信场合使用。红外光语音通信系统就是以38KHZ为载体的红外光传送。本设计中的红外发送模块硬件部分主要是由三个红外发射管(之所以选择三个,是为了提高发送功率,让发射距离达到最大)、三极管(用于驱动三个红外发射管)以及编码器CD4011

13、(用于将模拟信号转化为数字信号进行发送)。软件部分主要使用了红外通信协议,用于发送实时温度,然后通过软件模拟模拟信号,通过红外管发射,将两种信号同时以不同波段的信号放在38Khz载波上。2.2 红外发射中的计算 2.2.1 发射频率计算在音频信号或者视频信号的红外发射中最重要的就是发射频率的问题,因为音频信号和视频信号是一个连续的信号,其频率大约在300HZ3400HZ之间,所以在开始协议之前必须要进行频率计算来避免信号的完整传输,其主要控制分为两种:一是通过软件遵循NEC协议编写一套发送子程序,好处是提高了数据的传输精度,避免了干扰,不好的就是发送频率很低,大概是500HZ。另一种就是通过模

14、拟传送,这样可以免去协议,使其发射频率可以达到很高。2.2.2 A/D采集的频率计算首先我们知道声音的频率不是很高,并且题目明确给出所输入的信号源的频率在300HZ3400HZ,所以设置AD采集频率不需要很长,就设为5KHZ。还有一点就是在设置好频率之后还必须设置其采样周期,在程序中我们设置成了1.5个时间周期,大概计算了一下,能很好地采集到相关的数据变化。2.2.3 发射头功率的估算在整个的设备中,最重要的就是红外头的传送距离,在保证信息无误的情况下大概达到2m/s,所以这硬件设置中在发射管段链接高电平出接了一个R(60欧姆的电阻),使其能有足够的电流,在发射头上我们采用了并联一个发射头,在

15、成功连接后,最远无误的接收距离为10m/s。传送距离可以更该R的组织,但是不能小于此值,如果小于了就会烧坏管子的。2.3 红外接收中的计算 2.3.1 接收头的计算上面我们提到了发射管的发射频率是经过计算的,而要通过软件控制、协议通信的红外发射接收电路必须的遵守协议,也就是说我们接受的时间以及格式都必须和发射头的相关数据发射的数据个数、时间以及引导码。在接收数据之后可以通过硬件电路对其信号进行处理后在输入到CPU中(STM32)。但是本设计中不但涉及到了信号解调还涉及到了两种信号的分离,先通过信号解调将两种波形与载波分开,然后再通过硬件电路即选频电路将两种信号分开,温度信号每秒显示一次,而音频

16、信号或者视频信号则通过实时播送。2.3.2 D/A转换的相关计算在CPU接收到数据后进行相关的操作来驱动DAC模块对数据或者信号进行数模转换。在设置之前我们的得选好转换芯片的精度以及型号,尽量和数模转换的AD的转换精度保持一致。还有就是控制好转换的频率尽量使数据能够流通的无“堆积”、无“漏掉”的转换掉。除此之外,还应考虑该芯片的成本。3电路与程序设计3.1电路的设计3.1.1系统总体框图该系统主要由驻极体(用于采集音频信号)、滤波电路(滤除不需要的杂波,在放大电路之前滤除,可以降低噪音干扰)、放大电路(用于将采集的音频信号进行放大,防止在转换和传输过程中的失真过大)、AD转换模块(为了方便处理

17、器对模拟信号进行控制,将模拟信号转换成数字信号进行传输)、驱动电路(再次将信号进行放大,用以提高信号的发射功率)、在接收端再次将信号进行放大,并且通过波形整形,将传输过程中的失真进行一定限度的修补、单片机模块(将得到的信号进行分离,提出温度信号并且进行显示)、DAC模块(将数字信号转化成模拟信号,便于播放)、信号放大电路(将信号进行再次放大,然后通过喇叭进行播放)。红外发送模块电路主要有两个三极管(用来驱动红外发射管)、三个红外发射管(其中两个并联后再和另外一个进行串联)。其主要使用STM32作为CPU软件来产生38kHz的超声波载波信号,作为红外信号的载体;通过三个红外发射管以一定的方式结合

18、后对外发射经过软件在载波后的合成信号。其信号发送的原理为:使用CPU的一职普通IO口产生一个为38KHZ的脉冲信号,其产生的原理就是以38KHZ为周期产生一个高低电平,然后再使用另一支IO引脚将要发送的有用红外信号输出,并且和载波信号进行合成,最后通过达林顿驱动管去驱动三个红外发射管,使经过合成后的信号向外发送。通过软件协议规定,当不发送数据是将“0”作为选择信号,而把“1”作为信号发送的选择信号。系统总体框图如图1所示:图2 系统总体框图该系统一共使用了两块STM32,一个用于温度信号的采集以及发射电路的控制,包括相应的软件协议,而另一块STM32主要用于调解红外波以及将数字信号转化成模拟信

19、号以便于输出,另一方面用于显示当前的实时温度。3.1.2 发射子系统框图与电路原理图3.1.2.1 DS18B20测温电路我选择了DS18B20作为本红外发射系统的“感官器”,来感应当前环境的实时温度。该传感器具有外部电路简单的物理特性。并且价格低廉,其外围只有三只引脚,两边引脚分别为电源、接地,而中间的位信号线。使用IIC协议进行控制,该协议具有的优势为所需接口少,并且可在一条总线上挂多个器件,只需通过识别不同器件的地址码便可以进行通信。图3 DS18B20测温电路3.1.2.1 电源转换电路图4 电源转换电路使用A0505芯片将一个正电源转换成一个具有正负5V的双电源,其中最主要的就是输出

20、电源两端的方向电容。3.1.2.3发射驱动电路在发射驱动电路中,最主要的就是提高发射功率,我们选择了用两个三极管搭成达灵顿管,使其放大倍数相乘得到一个放大倍数很大的“三极管”。然后再使用两个发射管并联的方式来提高发射功率,最后所得到的数据最远能传送到10m。图5 发射驱动电路当信号加在信号输入端之后,经过耦合电容的耦合隔直,会在两个三极管的基极加上一组与音频信号相同变化的电流信号,再经由三极管达成的达林顿管将信号放大,驱动三只红外发光管。对音频信号进行调制,经过调制后的信号与真实信号相差无几,然后再转变为红外信号发送出去。由于每只红外发光管的制作与功率都一样,其正向压降和普通二极管具有一样的特

21、性,并且发射功率在100mW以下。如图所示先将两只红外发射管进行并联,然后串联一只红外发射管,串联的红外发射管上端连接5V电源,这样连接的目的是为了提高该红外发射模块的发射功率。对于红外管而言,其辐射角有限,所以三个二级管不能摆放在同一水平并且在同一方向上,需将三只二极管进行有叠加地排列,使之能尽可能的覆盖更大的区域,以便于接收模块的接收。3.1.3 接收子系统框图与电路原理图3.1.3.1 功率放大电路图6 功率放大电路3.1.3.2 D/A转换电路图7 D/A转换电路3.1.3.3 红外接收电路图8 红外接收电路3.1.3.4 中继站电路图9 中继站电路 中继站就是所谓的中转站,在这里给信

22、号补充“能量”使之能够再次“远足”,也打破了红外也能“拐弯”的神话。我们先使用HS0038将信号进行接收并解调,然后使用四个与非门电路将我们产生的38KHZ载波再次和信号进行“合成”。并且通过三极管补充能量,再次通过红外发射二极管将重新载波后的信号发送出去。这里的38KHZ的载波电路不再是由单片机经过定时器发生的,而是我们使用NE555搭建的一个占空比可调的信号发生器,而这里输出的就是38KHZ的方波信号。3.1.3.5电源电源主要由稳压模块、电容滤波模块以及输出模块构成。其主要功能是为整个系统提供5V的恒压电源,以确保电路的正常工作,保护部分已损坏元件。电源模块的核心模块就是使用了7805稳

23、压芯片,输入电源在一定范围内变化时,其输出电压都稳定在5V左右,上下浮动不会超过0.3V。因为其元器件少、连接简单,所以在此省略该模块的详细介绍。3.2程序的设计3.2.1程序功能描述与设计思路3.2.1.1程序功能描述根据题目要求软件部分主要实现红外的通信及温度的实时传送。红外通信中主要用到前置放大与发射部分、功率放大与接收部分。3.2.1.2程序设计思路在信号输入端口接入一个前端放大电路和中级放大电路对输入的信号进行微调和放大,再将放大过的信号输入到STM32中进行A/D转换,然后将转换的数据给红外发射端口;或外发射端口必须对信号员进行调制,因为信号频率太低很容易衰减,所以我们在软件设计的

24、时候使用定时器产生了一个38KHZ的载波信号,最后与输入的信号进行与非。接收部分在接收到信号后,红外接收头自动将信号解调成我们想要的信号,再通过相关的协议将其转换成我们所能使用的十六进制或者十进制的数据,然后通过DA模块将其再次还原成模拟信号进行滤波、放大最后输出。3.2.2程序流程图3.2.2.1 主程序流程图图10 主程序流程图3.2.2.2 ADC子程序流程图图11 ADC子程序流程图3.2.2.3 红外发送子程序流程图图12 红外发送子程序流程图3.2.2.4 DS18B20子程序流程图图13 DS18B20子程序流程图3.2.2.5 红外接收模块子程序流程图图14 红外接收子程序流程

25、图4测试方案与测试结果4.1测试方案4.1.1硬件测试 在做好PCB板后使用数字万用表进行初步测试,在无短路的情况下插上最小系统,先测试的是红外发射电路,在连接好之后上电后,使用时机扑捉红外光,如果闪烁则表明连接正确。然后检测温度传感器DS18B20,上电后使用数字万用表对其IIC通信引脚进行测试,看是否有信号波产生。最后测试的就是几块放大电路,在检查无短路的情况下使用信号发生器调制出正弦波形,同时使用示波器测试放大电路输出端的放大后的波形,再调节滑动变阻器的阻值的时候有明显的波形变化和放大并且芯片无发烫的现象时就表示没有问题。4.1.2 软件仿真测试在软件测试的过程中因为没有硬件电路的支持,

26、所以我们选择了使用串口发送数据的方式对软件调试结果进行验证。首先写好一个18b20的程序,打开串口,在调节后,温度能在电脑终端正确显示当前的实时温度;其次调节的是ADC模块,先配置好相关参数,然后输入一路模拟信号,再使用串口终端显示采集到的数字信号,如果变化有规律可循就表示成功。4.1.3硬件软件联调 最主要调试的模块便是红外发射模块和接收模块,在正式测试之前先利用一个遥控器来联合调试红外接收端,将自己的通信协议写入CPU后,连接好电路,当软件正常执行是使用遥控器进行验证,按下一个按键后,观测能否读取相关的简码,如果能读取出每个按键的简码,并且多次试验后没有变化,同时没有重复则表示红外通信成功

27、并且进行了高精度的传输。前面说过是自己的协议,所以红外接收头和发射头的通信协议特别的重要,频率一定要保持高度一致才能有效的无误的通信,在调试好接收模块后,使用发射模块发送一个字符,结果能成功接收并且准确无误,在使用高频率的载波后,传输距离变成了310m。4.2 测试条件与仪器测试条件:首先检测电路原理图的合理性,再通过仿真电路进行电路模拟运行,在仿真能够顺利完成的前提下,使用元器件和PCB板进行硬件电路的电气连接,在焊接的时候一定要注意对照着原理图进行焊接,以确保焊元器件的顺序以及型号正确。焊接成功后使用万用表先测试硬件电路是否有短路现象,如果没有在检测芯片的焊接顺序,查看是否有倒序、引脚焊接

28、错误,在一切都没有问题的时候就可排除原理图的错误。最后面就是通过软件进行联合调试,来测试相关编程芯片的好坏。测试仪器:6位半的数字万用表,数字/模拟示波器。4.3 测试结果及分析4.3.1测试结果表1 输入输出信号对比表输入0.20500.21000.20450.40261.0071.5421.6691.999输出0.60510.61200.60330.80311.4091.9022.0032.300表2 温度传输与距离的关系表距离(cm)180190200210240270300350串口温度(C)25.3225.5825.9926.7927.3726.5325.2125.54传送温度(C)

29、25.3125.5825.9826.7327.3726.53252625.72 语音信号测试方案及结果使用手机播放一首音乐,并且通过话筒传输入本系统的信号输入源,在使用喇叭连接在本系统的信号输出端,观测输出音乐的效果,以此来测试本系统的失真度。最后结论:可以清楚的辨别出原声音信号,可以明显的听到音乐信号的传出,但是有微弱的失真。当发射端输入300HZ-800HZ单频率信号的时候时,可以明显听到不同的6中声音信号,同时在电阻负载上,使用万用表测试接收装置的输出电压会随着输入信号的改变而成规律性的变化。在所有的设备都保持不变的前提下,切断信号源,在此使用6位半数字智能万用表进行测量,此目的是测试在

30、无声源的输入情况下噪声干扰情况。通过万用表可以观测到接收装置输出端噪声电压,读数为0.051V,相对于有信号的输入而言,其干扰可以省略不计。并且我在设计的时候采用了LED指示灯,当发射装置正常发射的同时接收装置不能接收红外信号时,LED会进行每秒一次的闪烁提示。 放大器的测试方案及结果首先使用信号发生器调制出峰值为0.05V、频率为1000Hz的正弦信号,在利用连接线将该信号输入放大器的输入端,一切准备妥当后使用数字示波器测量放大芯片的输出端,记录幅值。测试结论表明:输出峰值在5V左右,并且可以对输出峰值进行0.05V-5V的调接,说明其最大放大倍数为100倍,增益可调功能也能完全实现。 滤波

31、器的测试方案及结果在滤波器的信号输入端接入使用信号发生器产生峰值为1V的不同的低频率的信号,同时使用数字示波器测量滤波器的输出端,观察并且记录幅值。测试结果表明:在频率为低于200Hz的时候信号会发生较为明显的衰减,而且在频率大于4KHz的时候信号也会发生较为明显的衰减,但是在200HZ-4000HZ中间的频率的幅值几乎没有衰减,或者说衰减很小。所以完全能够瞒足我所需要的带宽,也就是说可以进行语音信号的传输。 AD采样及存储(包括)的测试方案及结果使用STM32写好关于ADC和DAC转换的相关程序后,在电路的信号输入端加入使用信号发生器所产生的模拟信号,然后在检测输出端的数字信号输出;完成之后

32、再将输出的数字信号输入到DAC模块,使用模拟示波器检测得到的模拟量信号。一切完成后,将最后得到的模拟量信号与电路输入端的模拟量信号进行对比,观察不同之处即信号的失真程度。测试结果表明:在波形伤基本一致,没有发生信号的变形,但是会产生一些很小的失真,经过分析计算后可以明确的表明其误差在允许的范围之内,可以实现模拟信号-数字信号-模拟信号的多次转换。 红外发射和接受装置的测试及结果在红外发射装置的信号输入端接入由信号发生器产生的数字信号,并且使用示波器在接收端对输出信号进行检测,通过与发射信号的对比,进而验证发射装置和接收装置能否能正常的配对工作,所传输的数据是否发生变化。测试结果表明:在保证发射

33、模块与接收模块的发射管和接受管正面对着的情况下,所发送的数据能够完全准确无误的进行红外传送,在改变发射管与接收管的面向位置,会发现在小转角的情况下数据也能进行准确无误的传输,但是当相对的转角过大会出现相关数据的失真。4.3.2测试分析与结论根据上述测试数据,在输入信号与输出信号的电压值可以看出,其波形几乎没有变化,但是经过前置运放和中级放大后信号明显加强了,说明了红外传输数据几乎没有信号损失。而通过温度显示测距说明了红外发送距离可以达到很远而信号衰减很微弱,当然距离太远就不一样了。还有就是红外通过载波后能传送的距离会变远,信号衰减减弱,设置中继站后,几乎没有影响其信号的准确度。经过各种测试完成

34、后,最后能正确的低失真度的传送语音信号,并且实时的反映出当时的温度。在功率方面我们也是尽自己最大的可能减少一切不必要的功耗。而本实验也有缺点,那就是我们在确定方案的时候没有考虑到使用软件对红外通信的发射频率低的特点,使得后来发送音频信号的时候由于发送过慢,丢失了一些数据没有发出,所以最后输出的效果不是很好。针对这种情况,以后我们可以使用相关的A/D、D/A模块将其转化,直接使用38KHZ的载波将转化的数据发送出去,也就是说不通过协议进行实时发送,这样发送不及时的问题可以得到根本性的解决(我所说的是在低频范围内)。由此可以得出以下结论: 红外传输的信号衰减很弱。 传输距离能达到要求。 在低频时能

35、实时的传送数据。附录1:电路原理图图15 发射电路原理图图16 接收电路原理图附录2:源程序#include STM32_UART1.h#include STM32_ADC.h#include TF_Delay.h#include stdio.h#include Time.h#include HS0038.h#include DS18B20.h/*/int main(void)u16 Voltage;TF_ADC1_Init();USART1_Configuration(); SystemInit(); /* 72M */ HS0038_GPIO_Config();/* HS0038 */TI

36、M2_NVIC_Configuration();/* TIM2 */ TIM2_Configuration();START_TIME;/*TIM2 */;iraddr1 = 3;iraddr2 = 252;USART1_Puts(USART1_Configurationrn);printf(RCC_GetSYSCLKSource:%drn,RCC_GetSYSCLKSource();while(1) Voltage =(uint16_t)(ADCConvertedValue * 3300 / 4096); /12 printf(Voltage = %d.%drn,Voltage/1000,Vo

37、ltage%1000); SendIRdata(0x78);/ #include STM32_ADC.hvolatile uint16_t ADCConvertedValue=0;/*/void TF_ADC1_Init(void)ADC_InitTypeDef ADC_InitStructure;DMA_InitTypeDef DMA_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;/-/ RCC_ADCCLKConfig(RCC_PCLK2_Div2); /- RCC_APB2PeriphClockCmd( RCC_APB2Periph_

38、GPIOA, ENABLE);/GPIO RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);/AFIO RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);/DMA RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); /ADC1 /-/Configure PA.01 (ADC Channel1) as analog inputGPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructur

39、e.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOA, &GPIO_InitStructure);/-DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADCConvertedValue;DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize =

40、 1; /2DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode = DMA_

41、Mode_Circular;DMA_InitStructure.DMA_Priority = DMA_Priority_High;DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;DMA_Init(DMA1_Channel1, &DMA_InitStructure);DMA_Cmd(DMA1_Channel1, ENABLE);/- ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;/ ADC_InitStructure.ADC_ScanConvMode = ENABLE;/ ADC_InitStructu

42、re.ADC_ContinuousConvMode = ENABLE; / ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;/ ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;/ ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTi

43、me_1Cycles5); / Enable ADC1 ADC_Cmd(ADC1, ENABLE); ADC_ResetCalibration(ADC1);/ Enable ADC1 reset calibaration register while(ADC_GetResetCalibrationStatus(ADC1);/ Check the end of ADC1 reset calibration register ADC_StartCalibration(ADC1);/ Start ADC1 calibaration while(ADC_GetCalibrationStatus(ADC1);/ Check the end of ADC1 calibration /- /Start ADC1 Soft

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号