- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ADC学习总结
ADC介绍
12位ADC是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。
ADC转换时间的计算
ADC 时钟频率越高,转换速度也就越快,但ADC 时钟有上限值,不能超过 14MHz?
ADC使用若干个ADC_CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位更改。每个通道可以分别用不同的时间采样。?
总转换时间如下计算:
把 PCLK2 配置为 56MHz时,最短采样时间为1us?
把 PCLK2 配置为 72MHz时,最短采样时间为1.17us因为ADC时钟上线不能超过14MHz,72MHz时最小分频要6分频,此时ADC时钟频率为12MHz,而最小采样时间为1.5T CONV ?= 1.5 + 12.5 = 14周期T=14*1/12MHz=1.17us?
ADC的GPIO的配置
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC, GPIO_InitStructure);
ADC的配置
ADC_InitTypeDef ADC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1和ADC2工作在独立模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE;//规定了模数转换工作在扫描模式(多通道)模式
ADC_ScanConvMode 规定了模数转换工作在扫描模式(多通道)还是单次(单通道)模式。可以设置这个参数为 ENABLE 或者 DISABLE。
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//规定了模数转换工作在连续模式
ADC_ContinuousConvMode 规定了模数转换工作在连续还是单次模式。可以设置这个参数为 ENABLE 或者 DISABLE。
ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//转换由软件而不是外部触发启动
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
//ADC数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 1;
//规定了顺序进行规则转换的ADC通道的数目
ADC_Init(ADC1, ADC_InitStructure);
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
//设置指定ADC的规则组通道,设置它们的转化顺序和采样时间
若是多个通道转换着需要配置不同通道转换的顺序例如:
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 3, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 4, ADC_SampleTime_55Cycles5);
ADC_DMACmd(ADC1, ENABLE);//使能或者失能指定的ADC的DMA请求
ADC_Cmd(ADC1, ENABLE);//使能ADC1
在开始 ADC 转换之前,需要启动 ADC 的自校准。ADC 有一个内置自校准模式,校准可大幅减小因内部电容器组的变化而造成的准精度误差
文档评论(0)