STM32ADC电压测试实验报告

上传人:仙*** 文档编号:121321972 上传时间:2022-07-18 格式:DOC 页数:6 大小:260KB
收藏 版权申诉 举报 下载
STM32ADC电压测试实验报告_第1页
第1页 / 共6页
STM32ADC电压测试实验报告_第2页
第2页 / 共6页
STM32ADC电压测试实验报告_第3页
第3页 / 共6页
资源描述:

《STM32ADC电压测试实验报告》由会员分享,可在线阅读,更多相关《STM32ADC电压测试实验报告(6页珍藏版)》请在装配图网上搜索。

1、STM32ADC电压测试实验报告、实验目的1. 了解STM32的基本工作原理2. 通过实践来加深对ARM芯片级程序开发的理解3. 利用STM32的ADC1通道0来采样外部电压值值,并在TFTLCD模块上显示出来、实验原理STM32拥有13个ADC,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM32的ADC是12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中U1115L汀BoonBOE-VTC3.35ATLPCJ2FfiJJl乐岛T:

2、R10CKFBM2C,P35ECLKESET10KKEYLIVEALpawjcmPC4.OSC32PCaSOSCS?PDD-OSCINPOl-OSCOOTKRSTPC&ADCIDPCa.AMllpca-ADcnPCiADCBTDAPADTSKUPADC0-TM2CHLETXPAJ-ADCl-TIWCH2_PA2-U2TK-ADC2-HM2CHSPAPASADCBKM?-匚H4VSSVTD阳P舶氓円1貉沮D匚斗酣】囂匚HN_TX心PA3期匸HRADCPALLfANKJE-USP.4155JH1JH5OADCiTIM3_CHL?AQUP.朋K3dCiTADbTMjH田PASTPO+ADdI斗PCA

3、DCISP&J-WCETIM3CH3P33.,ADC9-TM32CH4mi.EOOTlP3aT2C2_5CbU3_T!t:珂山!2C2HDA/uOtKVS呂VTOKE3TLTOFrbfiPO9U上占itblLL,-EDnFJl13GND|l-kPADFTSPA2L6PAJSDCSPA317PA2LC4cJ?-GNDPA3VCC3J谱HI斗FITOPAL5M4KRFCEJT24K5TPA420M3SFIL&CK.SA左3LPAfiSPILM&DPASSmPA7SPILMCSIPAT23PAEKRFCSJT24C&PC42斗PAPNRFIRCJTI斗EKTPC525PAIDLCDDDPM26PA1

4、1LCDDIPfilM12BOOHLCDD2JK2S-M13lcdZdid?B-0甥PAI冲LCDD1FB1I30PA13CLLGNE3L1VCC3332firr&410接下来,我们介绍一下执行规则通道的单次转换,需要用到的ADC寄存器。第一个要介绍的是ADC控制寄存器(ADC_CR1和ADC_CR2)。ADC_CR1的各位描述如下:313029282726252423222120保留ATOENAmENJ保留rwrw151413121110g8-T6543DDSCNM2:ANDISC该位JDISCEKJ模式0AWD软件置和和清JEOCIE设置)为EEOCIErwrwrwrwrwrwrwrwrw

5、rwrwrwri式我们要使用的是独立模式,所以设置这几位为0就可以了。第二个寄存器ADC_CR2,该寄存器的各位描述如下:31302928272625242322212019保留TSVREFESWSTARTSWSTART;EXTTRIGEXTrwrwrwrwrw15141312111098了6543JEXTTRIGJEXTSEL2:0:ALIGN保留DMA保留RSTCALrwrwrwrwrwrwrwADCON位用于开关AD转换器。而CONT位用于设置是否进行连续转换,我们使用单次转换,所以CONT位必须为0。CAL和RSTCAL用于AD校准。ALIGN用于设置数据对齐,我们使用右对齐,该位设置

6、为0。EXTSEL2:0用于选择启动规则转换组转换的外部事件,我们这里使用的是软件触发(SWSTART),所以设置这3个位为111。第三个要介绍的是ADC采样事件寄存器(ADC_SMPR1和ADC_SMPR2),这两个寄存器用于设置通道017的采样时间,每个通道占用3个位31302928272625242322212019保留SMP172:0SMP162:Crwrwrwrwrwrwrwrw15141312111098I*-?76D43SMP150SIP142:O:SMP132:0:SMP122:0SMP112:0:rwrwrwrwrwrwrwrwrwrwrwrwrw位31:24保留。必须保持为

7、CL位2古0SMPx2:0:选择通道x的采样时间这些位用于独立他选择每个通道的采样时间。在采样周期中通道选择位必英000:1一5周期100:41_5周期001:工5周期101:55-5周期样:间3占周期较高:准确度周期转间间可5周期I;二注列-ADC1的模拟输入通道3)和通道1了在芯片内部分别连到了温度传感器和V-ADC2的模拟输入通道代和通道仃在芯片内部连到了MS-ADC3模拟输入通道14,15,1了与Vss相连31302928272625242322212019保留L3:0:rwrwrwrwrw151413121110g8-T6543SQ160SQ154:0SQ144:0SQTWrwrwr

8、wrwrwrwrwrwrwrwrwrw313(位31:24保留.必须保持为九位23:20L3:0:规则通道序列长度这世位定义了在规则通道转换序列中转换总数0000:1个转换0001;2个转换数据寄16个转换&19:15SQ164:0:规则序列中的第吒个转换这凹位定义了转换序列中的第代个转换通道的编号(0-17).2928272625242322212019.ADC2DATA15:0rrrrrrrrrrrrr1514131211109876543DATA15:0rrrrrrrrrrrrr位31:16ADC2DATA15:0:ADC2转换的数据-在ADC1中:双模式下.这些位包含了ADC2转换的规

9、则通道数据见10一-在ADC2中:不用这些位位159DATA15:0J:规则转换的数据这些位为只读,包含了规则通道的转换结杲数据是左或右对齐*如图2531302928272625212322212019181716保留1514131211109876513210STRTJSTRTJEOCEOCATDnrnnr腺断宜須保持为乩也4STRT规则通道开始位该应由暁件在规则通道转换开始时设置”由软件洁除.0=规则通道转换未幵始1:规则通道转换已幵蛤位3JSTRT:注入通道幵始位谍任由陛件在注入通道组转恆幵始时设買.由软件活陽.0:注入通道转换束幵蛤1:注入通道转换已幵蛤位2JEOC:注人通道转换站束卷

10、谨应由陛件在所竹注入通道组转换緒車时设置由款(牛清除0:转换本瓷成1:转换盍成EOC:转换跻束位该位由硬件在规则或注入诵道组转换结束时设置,由软件清除或由读取ADC_DR时活除0:转换本瓷成1:转换盍成位0AWD:模拟看门狗标志蛊该位由暁件在转挾的电缶值趙出fADC.LTR和ADC_HIF寄存器定買的范甩时设置,由软件S5除0:浚有发生甩拟看门狗事件1:堂生模拟看口狗事件.实验步骤1)开启PA口时钟,设置PA0为模拟输入。STM32F103RBT6的ADC通道0在PAO上,所以,我们先要使能PORTA的时钟,然后设置PA0为模拟输入。2)使能ADC1时钟,并设置分频因子。要使用ADC1,第一步

11、就是要使能ADC1的时钟,在使能完时钟之后,进行一次ADC1的复位。接着我们就可以通过RCC_CFGR设置ADC1的分频因子。分频因子要确保ADC1的时钟(ADCCLK)不要超过14Mhz。3)设置ADC1的工作模式。在设置完分频因子之后,我们就可以开始ADC1的模式配置了,设置单次转换模式、触发方式选择、数据对齐方式等都在这一步实现。4)设置ADC1规则序列的相关信息。接下来我们要设置规则序列的相关信息,我们这里只有一个通道,并且是单次转换的,所以设置规则序列中通道数为1,然后设置通道0的采样周期。5)开启AD转换器,并校准。在设置完了以上信息后,我们就开启AD转换器,执行复位校准和AD校准

12、,注意这两步是必须的!不校准将导致结果很不准确。6)读取ADC值。在上面的校准完成之后,ADC就算准备好了。接下来我们要做的就是设置规则序列0里面的通道,然后启动ADC转换。在转换结束后,读取ADC1_DR里面的值就是了。通过以上几个步骤的设置,我们就可以正常的使用STM32的ADC1来执行AD转换操作了。二,程序代码voidAdc_Init(void)先初始化IO口RCC-APB2ENRI=1vv2;使能PORTA口时钟GPIOA-CRL&=0XFFFF0000;/PA0123anolog输入/通道10/11设置RCC-APB2ENR|=1APB2RSTR|=1APB2RSTR&=(1vv9

13、);复位结束RCC-CFGR&=(3CFGR|=2CR1&=0XF0FFFF;/工作模式清零ADC1-CR1|=0CR1&=(1CR2&=(1CR2&=(7CR2|=7CR2I=1CR2&=(1SQR1&=(0XFSQR1&=0SMPR2&=0XFFFFF000;通道0,1,2,3采样时间清空ADC1-SMPR2|=7SMPR2|=7SMPR2|=7SMPR2|=7CR2I=1CR2|=1CR2&1CR2I=1CR2&1SQR3&=0XFFFFFADC1-CR2|=1SR&lvvl);等待转换结束returnADC1-DR;返回adc值。接下来在adc.h文件里面输入如下代码:#ifndef_

14、ADC_H#define_ADC_H/MiniSTM32开发板/ADC驱动代码正点原子ALIENTEK#defineADC_CH00/通道0#defineADC_CH11通道1#defineADC_CH22/通道2#defineADC_CH33/通道3voidAdc_Init(void);u16Get_Adc(u8ch);#endif该部分代码很简单,这里我们就不多说了,这里定义的4个通道的宏定义,我们在main函数将会用到ADC_CHO。接下来我们在test.c里面,修改main函数如下:intmain(void)u16adcx;floattemp;Stm32_Clock_Init(9);系统时钟设置delay_init(72);/延时初始化uart_init(72,9600);/串口1初始化LED_Init();LCD_Init();Adc_Init();POINT_COLOR=RED;设置字体为红色POINT_COLOR=BLUE;设置字体为蓝色LCD_ShowString(60,150,ADC_CH0_VOL:0.000V);while(1)LCD_ShowNum(156,150,adcx,1,16);显示电压值temp-=adcx;temp*=1000;LCD_ShowNum(172,150,temp,3,16);LED0=!LED0;delay_ms(250);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!