




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、7.1 ADC7.1 ADC的硬件结构及特征的硬件结构及特征7.2 7.2 工作模式工作模式7.3 ADC7.3 ADC中断中断7.4 ADC7.4 ADC寄存器寄存器7.5 ADC7.5 ADC库函数库函数7.6 ADC7.6 ADC程序设计程序设计l STM32F103有有2个个12位位ADC(ADC1和和ADC2),),是逐次逼近型模拟是逐次逼近型模拟/数字转换器。数字转换器。ADC的输入时钟不得的输入时钟不得超过超过14MHz,它是由,它是由PCLK2经分频产生经分频产生l 它有多达它有多达18个通道,可测量个通道,可测量16个外部和个外部和2个内部信号源。个内部信号源。l 各通道的各
2、通道的A/D转换可以单次、连续、扫描或间断模转换可以单次、连续、扫描或间断模式执行。式执行。l ADC的结果可以左对齐或右对齐方式存储在的结果可以左对齐或右对齐方式存储在16位位数据寄存器中。数据寄存器中。ADC123_IN0-PA0ADC123_IN1-PA1ADC123_IN2-PA2ADC123_IN3-PA3ADC12_IN4-PA4ADC12_IN5-PA5ADC12_IN6-PA6ADC12_IN7-PA7ADC12_IN8-PB0ADC12_IN9-PB1ADC12_IN9-PB1ADC123_IN10-PC0ADC123_IN10-PC0ADC123_IN11-PC1ADC12
3、3_IN11-PC1ADC123_IN12-PC2ADC123_IN12-PC2ADC123_IN13-PC3ADC123_IN13-PC3ADC12_IN14-PC4ADC12_IN14-PC4ADC12_IN15-PC5 ADC12_IN15-PC5 ADC3_IN4-PF6ADC3_IN4-PF6ADC3_IN5-PF7ADC3_IN5-PF7ADC3_IN6-PF8ADC3_IN6-PF8ADC3_IN7-PF9ADC3_IN7-PF9ADC3_IN8-PF10ADC3_IN8-PF10 1212位分辨率位分辨率转换结束、注入转换结束和发生模拟看门狗事件时产生中断转换结束、注入转换结束
4、和发生模拟看门狗事件时产生中断 单次和连续转换模式单次和连续转换模式 从通道从通道0 0到通道到通道n n的自动扫描模式的自动扫描模式 自校准自校准 带内嵌数据一致性的数据对齐带内嵌数据一致性的数据对齐采样间隔可以按通道分别编程采样间隔可以按通道分别编程 规则转换和注入转换均有外部触发选项规则转换和注入转换均有外部触发选项 间断模式间断模式 双重模式双重模式( (带带2 2个或以上个或以上ADCADC的器件的器件) ) ADCADC转换时间:转换时间: STM32F103xxSTM32F103xx增强型产品:时钟为增强型产品:时钟为56MHz56MHz时为时为1s(1s(时钟为时钟为72MHz
5、72MHz为为1.17s) 1.17s) 。ADCADC供电要求:供电要求:2.4V2.4V到到3.6V 3.6V ADCADC输入范围:输入范围:VREF- VREF- VIN VIN VREF+ VREF+ 规则通道转换期间有规则通道转换期间有DMADMA请求产生。请求产生。 通道选择通道选择单次转换模式单次转换模式连续转换模式连续转换模式扫描模式扫描模式间断模式间断模式数据对齐数据对齐双双ADCADC模式模式有有1616个多路通道。可以把转换组织成两组:个多路通道。可以把转换组织成两组:规规则组则组和和注入组注入组。在任意多个通道上以任意顺序。在任意多个通道上以任意顺序进行的一系列转换构
6、成成组转换。进行的一系列转换构成成组转换。规则组规则组由多达由多达1616个转换组成。规则通道和它们个转换组成。规则通道和它们的转换顺序在的转换顺序在ADC_SQRxADC_SQRx寄存器中选择。寄存器中选择。注入组注入组由多达由多达4 4个转换组成。注入通道和它们个转换组成。注入通道和它们的转换顺序在的转换顺序在ADC_JSQRADC_JSQR寄存器中选择。寄存器中选择。单次转换模式下,单次转换模式下,ADCADC只执行一次转换。只执行一次转换。如果一个规则通道被转换:如果一个规则通道被转换: 转换数据被储存在转换数据被储存在1616位位ADC_DRADC_DR寄存器中寄存器中 EOC(EO
7、C(转换结束转换结束) )标志被设置标志被设置 如果设置了如果设置了EOCIEEOCIE,则产生中断。,则产生中断。如果一个注入通道被转换:如果一个注入通道被转换: 转换数据被储存在转换数据被储存在1616位的位的ADC_DRJ1ADC_DRJ1寄存器中寄存器中 JEOC(JEOC(注入转换结束注入转换结束) )标志被设置标志被设置 如果设置了如果设置了JEOCIEJEOCIE位,则产生中断。位,则产生中断。 然后然后ADCADC停止。停止。 在连续转换模式中,当前面在连续转换模式中,当前面ADCADC转换一结束马上就启转换一结束马上就启动另一次转换。动另一次转换。如果一个规则通道被转换:如果
8、一个规则通道被转换: 转换数据被储存在转换数据被储存在1616位的位的ADC_DRADC_DR寄存器中寄存器中 EOC(EOC(转换结束转换结束) )标志被设置标志被设置 如果设置了如果设置了EOCIEEOCIE,则产生中断。,则产生中断。 如果一个注入通道被转换:如果一个注入通道被转换: 转换数据被储存在转换数据被储存在1616位的位的ADC_DRJ1ADC_DRJ1寄存器中寄存器中 JEOC(JEOC(注入转换结束注入转换结束) )标志被设置标志被设置 如果设置了如果设置了JEOCIEJEOCIE位,则产生中断。位,则产生中断。 此模式用来扫描一组模拟通道。此模式用来扫描一组模拟通道。 A
9、DCADC扫描所有被扫描所有被ADC_SQRXADC_SQRX寄存器寄存器( (对规则通道对规则通道) )或或ADC_JSQR(ADC_JSQR(对注入通道对注入通道) )选中的所有通道。选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。束时,同一组的下一个通道被自动转换。如果设置了寄存器如果设置了寄存器ADC_CR2ADC_CR2中的中的CONTCONT位,转换不会在位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。第一个通
10、道继续转换。 规则组规则组 :此模式通过设置:此模式通过设置ADC_CR1ADC_CR1寄存器上的寄存器上的DISCENDISCEN位激活。它可以用来执行一个短序列的位激活。它可以用来执行一个短序列的n n次转换次转换(n=8)(nODR=0 xffffffff; while(1) ADC = Get_Adc(14); /smart开发板ADC1通道14,PC4 ADC14 = ADC*3300/4095; a1=ADC14/1000;a11=ADC%1000;a2=a11/100;a21=a11%100;a3=a21/10;a31=a21%10;a4=a31; a1=a1+0 x30;a2=
11、a2+0 x30;a3=a3+0 x30;a4=a4+0 x30;Uart1_PutChar(a1); Delay(0 x02fff);Uart1_PutChar(.); Delay(0 x002fff);Uart1_PutChar(a2); Delay(0 x002fff);Uart1_PutChar(a3); Delay(0 x002fff);Uart1_PutChar(a4); Delay(0 x002fff);Uart1_PutChar(0 x0d);Uart1_PutChar(0 x0a);Delay(0 x08fffff);void Uart1_PutChar(u8 ch) USA
12、RT_SendData(USART1, (u8) ch); if (USART_GetFlagStatus(USART1, USART_FLAG_TXE) = SET) USART_ClearFlag(USART1,USART_FLAG_TXE); void Uart1_PutString(u8 *buf , u8 len) u8 i=0; for(i=0; ilen; i+) Uart1_PutChar(*buf+); void uart_init( )USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudR
13、ate = 9600;/波特率9600USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART
14、_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); /使能串口void void Adc_Init(voidAdc_Init(void) ) ADC_InitTypeDefADC_InitTypeDef ADC_InitStructureADC_InitStructure; ; RCC_ADCCLKConfig(RCC_PCLK2_Div6); RCC_ADCCLKConfig(RCC_PCLK2_Div6); ADC_DeInit(ADC1); /? AD
15、C1 ADC_DeInit(ADC1); /? ADC1 初始化初始化ADC_InitStructure.ADC_ModeADC_InitStructure.ADC_Mode = = ADC_Mode_IndependentADC_Mode_Independent; ;ADC_InitStructure.ADC_ScanConvModeADC_InitStructure.ADC_ScanConvMode = DISABLE; = DISABLE;ADC_InitStructure.ADC_ContinuousConvModeADC_InitStructure.ADC_ContinuousCon
16、vMode = DISABLE; = DISABLE;ADC_InitStructure.ADC_ExternalTrigConvADC_InitStructure.ADC_ExternalTrigConv = = ADC_ExternalTrigConv_NoneADC_ExternalTrigConv_None; ;ADC_InitStructure.ADC_DataAlignADC_InitStructure.ADC_DataAlign = = ADC_DataAlign_RightADC_DataAlign_Right; ;ADC_InitStructure.ADC_NbrOfChan
17、nelADC_InitStructure.ADC_NbrOfChannel = 1; = 1;ADC_Init(ADC1, &ADC_Init(ADC1, &ADC_InitStructureADC_InitStructure);); ADC_Cmd(ADC1, ENABLE);ADC_Cmd(ADC1, ENABLE);ADC_ResetCalibration(ADC1);ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1);while(ADC_GetResetCalibrationStatus(ADC1);
18、ADC_StartCalibration(ADC1);ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1);while(ADC_GetCalibrationStatus(ADC1); ADC_SoftwareStartConvCmd(ADC1, ENABLE);ADC_SoftwareStartConvCmd(ADC1, ENABLE); u16 Get_Adc(u8 u16 Get_Adc(u8 chch) ) ADC_RegularChannelConfig(ADC1, ADC_RegularChannelConfi
19、g(ADC1, chch, 1, , 1, ADC_SampleTime_239Cycles5 ); ADC_SampleTime_239Cycles5 ); ADC_SoftwareStartConvCmd(ADC1, ENABLE);ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ); while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC );return ADC_GetConversionValue(ADC1);return ADC_G
20、etConversionValue(ADC1); T=239.5+12.5=252cylesT=239.5+12.5=252cylesvoid RCC_Configuration() /配置系统时钟(略)/ 配置外设时钟 RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1| RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE);RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1, ENABLE ); /延时函数:void Del
21、ay(vu32 nCount) for(; nCount != 0; nCount-);void GPIO_Configuration(void) GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_In
22、itStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); 1.STM32F103VB内置()个()位的AD转换器。2. AD转换器有()个模拟量输入通道,其中外部通道()个,内部通道()个。3. STM32F103VB的AD转
23、换器的转换原理是(),转换时间最快为()us。4. STM32F103VB的AD转换器的转换时钟频率不能超过()MHz.5. STM32F103VB的AD转换器可将()V-()V电压转换成()-()的二进制数。6. ADC主要有4种转换模式: ()、()、()和()。7. 启动AD转换有两种方式: ()和()。8.AD转换结束后,转换结束标志位会置()。9.多个通道进行AD转换时,可设置成()通道组或者()通道组。10.规则通道组最多有()个通道转换。注入通道组最多允许()通道转换。通过编程设置每个通道的转换顺序。11.转换时间等于采样时间加上()个时钟周期。12.模拟看门狗部分用于监控检测电压是否超过高、低阈值电压,若超过,可以产生()。ADC_InitStructure
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 积累经验2024国际商业美术设计师考试试题及答案
- 白人警察面试题及答案
- 助理广告师考试全能选手方案试题及答案
- 新理念商业美术设计师考试试题及答案
- 数字印花技术在纺织品中的应用试题及答案
- 助理广告师考试考生必读的试题及答案
- 检验员应注意的安全工作规范试题及答案
- 2024年助理广告师考试高效复习的策略与方法试题及答案
- 兑纺织品检验员证书考试的心态建设 试题及答案
- 时事竞赛考试题及答案
- 苹果电脑macOS效率手册
- 老母亲赡养协议书范本
- 卸车工合同协议书
- 高层建筑基坑开挖围护施工方案
- JGJ-T221-2010纤维混凝土应用技术规程
- 2024届上海奉贤区高三一模英语试题及答案
- 2024年农业经理人(中级)技能认证考试复习题库(含答案)
- 水利水电工程建设用地设计标准(征求意见稿)
- JJG 621-2012 液压千斤顶行业标准
- 从院感控制看抗生素的合理应用
- 深圳科技馆(新馆)展教工程常设展区整体展教方案
评论
0/150
提交评论