项目五数字电压表设计_第1页
项目五数字电压表设计_第2页
项目五数字电压表设计_第3页
项目五数字电压表设计_第4页
项目五数字电压表设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、ARM结构与应用项目五 数字电压表设计知识重点lSTM32 ADC的特性lSTM32 ADC的引脚功能lSTM32 ADC的库函数使用lSTM32 ADC的库函数使用lSTM32 ADC的程序编写知识难点1. STM32 ADC简介 AD模数模块(Analog-to-Digital Converter),即模拟/数字转换器,主要功能是将连续变化的模拟信号转换为离散的数字信号。 由于单片机只能处理数字信号,因此,在对外部的模拟信号进行分析、处理的过程中,必须使用ADC模块将外部的模拟信号转换成单片机所能处理的数字信号。 典型的模拟/数字转换器将模拟信号转换为表示一定比例电压值的数字信号。2. S

2、TM32 ADC特性 12 位逐次逼近型的模拟数字转换器 18 个通道,可测量 16 个外部和 2 个内部信号源 各通道的 A/D 转换可以单次、连续、扫描或间断模式执行 ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中2. STM32 ADC特性 STM32F103ZET 包含有 3 个 ADC STM32 的 ADC 最大的转换速率为 1Mhz,也就是转换时间为 1us(在 ADCCLK=14M,采样周期为 1.5 个 ADC 时钟下得到),不要让 ADC 的时钟超过 14M,否则将导致结果准确度下降。2. STM32 ADC特性 STM32 将 ADC 的转换分为 2 个

3、通道组: 规则通道组和注入通道组。main( ) 语句;void EXTI0_IRQHandler(void) 语句;规则通道注入通道注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。3. STM32 ADC的引脚描述4. STM32 ADC的程序编写任务:使用库函数设定使用 ADC1 的 通道 1 进行 AD 转换4. STM32 ADC的程序编写main( ) /语句;void Adc_Init(void) /初始化 ADC1(步骤14)u16 Get_Adc(u8 ch) /读取某个通道 的 ADC 值(步骤5),例如我们读取通道 1 上的 ADC

4、值,就可以通过 Get_Adc(1)得到u16 Get_Adc_Average(u8 ch,u8 times) /多次获取 ADC 值,取平均,提高准确度5. STM32 ADC的库函数(1)开启 PA 口时钟和 ADC1 时钟,设置 PA1 为模拟输入 使能时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1, ENABLE ); GPIO引脚模式: GPIO_Init 函数,模拟输入模式5. STM32 ADC的库函数(2)复位 ADC1,同时设置 ADC1 分频因子 分频因子要确保 ADC1 的时钟(ADC

5、CLK)不要超过 14Mhz。 设置分频因子为 6,时钟为 72/6=12MHz RCC_ADCCLKConfig(RCC_PCLK2_Div6); ADC 时钟复位: void ADC_DeInit(ADC_TypeDef* ADCx)5. STM32 ADC的库函数(3)初始化 ADC1 参数,设置 ADC1 的工作模式以及规则序列的相关信息函数名ADC_Init函数原形void ADC_Init (ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)功能描述根据 ADC_InitStruct 中指定的参数初始化外设 ADCx 的寄存器输入

6、参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2输入参数 2ADC_InitStruct:指向结构 ADC_InitTypeDef 的指针,包含了指定外设 ADC 的配置信息输出参数无返回值无先决条件无被调用函数无5. STM32 ADC的库函数 参数 ADC_Mode 故名是以是用来设置 ADC 的模式。前面讲解过,ADC 的模式非常多,包括独立模式,注入同步模式等等,这里我们选择独立模式,所以参数ADC_Mode_Independent。 参数 ADC_ScanConvMode 用来设置是否开启扫描模式,因为是单次转换,这里我们选择不开 启值 DIS

7、ABLE 即可。 参数 ADC_ContinuousConvMode 用来设置是否开启连续转换模式,因为是单次转换模式,所以 我们选择不开启连续转换模式,DISABLE 即可。5. STM32 ADC的库函数 参数 ADC_ExternalTrigConv 是用来设置启动规则转换组转换的外部事件,这里我们选择软件触发,选择值为 ADC_ExternalTrigConv_None 即可。 参数 DataAlign 用来设置 ADC 数据对齐方式是左对齐还是右对齐,这里我们选择右对齐方ADC_DataAlign_Right。 参数 ADC_NbrOfChannel 用来设置规则序列的长度,这里我们

8、是单次转换,所以值为 1 即可。5. STM32 ADC的库函数(4)使能 ADC 并校准 使能指定的 ADC void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState) 执行复位校准 void ADC_ResetCalibration(ADC_TypeDef* ADCx); 执行 ADC 校准 void ADC_StartCalibration(ADC_TypeDef* ADCx);5. STM32 ADC的库函数(4)使能 ADC 并校准 每次进行校准之后要等待校准结束while(ADC_GetResetCalibrationStat

9、us(ADC1); /等待复位校准结束while(ADC_GetCalibrationStatus(ADC1); /等待ADC校准结束5. STM32 ADC的库函数(5)读取 ADC 值设置规则序列通道以及采样周期(规则序列中的第 1 个转换,同时采样周期为 239.5)函数名ADC_RegularChannelConfig函数原形void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime)功能描述设置指定 ADC 的规则组通道,设置它们的转化顺序和采样时间输入参数 1

10、ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2输入参数 2ADC_Channel:被设置的 ADC 通道输入参数 3Rank:规则组采样顺序。取值范围 1 到 16。输入参数 4ADC_SampleTime:指定 ADC 通道的采样时间值参阅章节 ADC_SampleTime 查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无5. STM32 ADC的库函数(5)读取 ADC 值 软件开启 ADC 转换void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) 获取转换 ADC 转换结果数据 u16 ADC_GetConversionValue(ADC_TypeDef* ADCx) 获取 AD 转换的状态信息FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG) 如何判断 ADC1的转换是否结束?平均值怎么算? 110求平均

温馨提示

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

评论

0/150

提交评论