13、嵌入式系统应用--ADC--模拟电压采集-肖迎春-201309课件.ppt

13、嵌入式系统应用--ADC--模拟电压采集-肖迎春-201309课件.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
13、嵌入式系统应用--ADC--模拟电压采集-肖迎春-201309课件

嵌入式系统应用 肖迎春 Email:xiaoyc@ QQ:787522366 Tel 目录 任务1:ADC--模拟电压采集 STM32 ADC介绍 STM32的A/D转换器 STM32单片机有2个独立的ADC控制器,有18个通道,可测量16个外部信号和2个内部信号源:内部温度传感器和内部参考电压(Bandgap voltage) 。 ADC 电源要求: 2.4V to 3.6 V 。 ADC 输入范围: VREF- ≤ VIN ≤ VREF+ (VREF+ and VREF- available only in LQFP100 package) 精度:12位。结果可按左对齐或右对齐的方式存放在16位寄存器中。 A/D转换的过程:采用、保持、量化、编程。采样时间越长,转换结果越稳定。采样时间可设置为:1.5个/7.5个/13.5个/28.5个ADC时钟周期。 ADC转换时间 采用时间+转换时间 转换时间:12.5个时钟周期。 STM32的A/D转换器 转换速率: ADC1和ADC2连在APB2总线上(其最高速率72MHz)。CLK控制器为ADC时钟提供一个专用的可编程预分频器,预分频值为: STM32的ADC允许的最高时钟频率为14MHz,若超过会降低精度,因此需要对CLK进行分频。 最快转换时间: 最高转换速率: STM32的A/D转换器 转换模式: 单次/连续/扫描/间断/双重。 扫描模式如果没有启动,则启动一次AD转换只会转换第一个通道;扫描模式如果启动,则启动一次AD转换会对所有通道进行转换。 如果是单次模式,启动后一次转换完成后不再转换,如果是连续模式,则一次转换完后继续反复转换。 STM32的16个外部ADC通道可分为两组:规则的和注入的。每个组可以是这16个通道中的任意一些通道以任意顺序进行的组合。 规则组最多有16个通道,通道和转换顺序在ADC规则系列寄存器x(ADC_JSQR)中选择。 注入组最多有4个通道。通道和转换顺序在ADC注入系列寄存器(ADC_JSQR)中选择。 STM32的A/D转换器 ADC端口: PA0~PA7:ADC_IN0~ADC_IN7 PB0~PB1:ADC_IN8~ADC_IN9 PC0~PC5:ADC_IN10~ADC_IN15 输入信号量程:VREF-~VREF+(0~3.3V) 本电路板的模拟电压(电位器)连在PC0端口。 任务1:ADC模拟电压采集 任务:编程从STM32的ADC采集电位器上的模拟电压,通过串口输出到PC上,串口终端接收显示出来 目的:掌握STM32 ADC的应用及库函数的使用 步骤: 建立自己的项目文件夹 建立Keil工程项目,命名为ADC.uvproj,保存到MDK目录下 项目中添加main.c、retarget.c和标准外设库STM32StdPeriphLib.lib 配置好C/C++头文件路径和调试工具参数 将实验板上的跳线J61, J62接到RS232RS485端,跳线J59,J60接到RS232端; 连接好仿真器和实验板 编译、下载程序 打开PC机上的串口终端,选择正确的端口和波特率 调整电位R2,观察串口接收窗口的数据 修改代码,将ADC的数值转换为实际电压值,通过串口将结果发回PC,同时在电压值1.0V时LED闪烁,电压值2.5V时蜂鸣器报警; 任务1:配置 头文件路径配置: 任务1:配置 Debug配置: 任务1:配置 下载工具配置: ADC库函数功能描述 USART标准库函数的说明参考课本p335表C.9 在软件开发时,adc标准库函数的参数使用,可以参考头文件 stm32f10x.h、stm32f10x_adc.h 使用STM32 ADC的步骤 调用RCC_APB2PeriphClockCmd()库函数使能对应IO口的时钟 RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC |RCC_APB2Periph_ADC1 |RCC_APB2Periph_GPIOD| RCC_APB2Periph_AFIO , ENABLE ); 调用GPIO_Init()配置IO口的模式 //PC0 作为模拟通道10输入引脚 GPIO_InitStru

文档评论(0)

baa89089 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档