7.AD转换—基于CT117E开发板的STM32库函数编程

说明一下,使用到的 库函数分布在 stm32f10x_adc.c 文件和 stm32f10x_adc.h 文件中。下面讲解其详细步骤:
1 ) 开启 PA  口和 和 ADC1  时钟,设置 PA1  为模拟输入。
STM32F103RCT6 的 ADC 通道 1 在 PA1 上,所以,我们先要使能 PORTA 的时钟,然后设 置 PA1 为模拟输入。使能 GPIOA 和 ADC 时钟用   RCC_APB2PeriphClockCmd 函数, 设置 PA1 的输入方式,使用 GPIO_Init 函数即可。这里我们列出 STM32 的 ADC 通道与 GPIO 对应表:
2 )复位 ADC1 ,同时设置 ADC1 
开启 ADC1 时钟之后,我们要复位 ADC1,将 ADC1 的全部寄存器重设为缺省值之后我们 就可以通过 RCC_CFGR 设置 ADC1 的分频因子。分频因子要确保 ADC1 的时钟(ADCCLK) 不要超过 14Mhz。 这个我们设置分频因子位 6,时钟为 72/6=12MHz,库函数的实现方法是:
   
   
   
  1. RCC_ADCCLKConfig(RCC_PCLK2_Div6);
ADC 时钟复位的方法是:
   
   
   
  1. ADC_DeInit(ADC1);//复位指定的 ADC。
3 )初始化 ADC1  参数,设置 ADC1 
在设置完分频因子之后,我们就可以开始 ADC1 的模式配置了,设置单次转换模式、触发 方式选择、 数据对齐方式等都在这一步实现。 同时, 还要设置 ADC1 规则序列的相关信息, 这里只有一个通道,并且是单次转换的,所以设置规则序列中通道数为 1。这些在库函数 中是通过函数 ADC_Init 实现的,下面看其定义:
   
   
   
  1. void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);
从函数定义可以看出,第一个参数是指定 ADC 号。这里我们来看看第二个参数,跟其他外设 初始化一样,同样是通过设置结构体成员变量的值来设定参数。
   
   
   
  1. typedef struct
  2. {
  3. uint32_t ADC_Mode;
  4. FunctionalState ADC_ScanConvMode;
  5. FunctionalState ADC_ContinuousConvMode;
  6. uint32_t ADC_ExternalTrigConv;
  7. uint32_t ADC_DataAlign;
  8. uint8_t ADC_NbrOfChannel;
  9. }ADC_InitTypeDef;
参数 ADC_Mode 故名是以是用来设置 ADC 的模式。前面讲解过,ADC 的模式非常多,包括独 立模式,注入同步模式等等,这里我们选择独立模式,所以参数为 ADC_Mode_Independent。
参数 ADC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值