基于STM32CubMX和HAL库的外设开发(六、ADC采样)

基于STM32CubMX和HAL库的外设开发

第六讲 ADC采样

一、 ADC简介

1、什么是ADC?
  • 答:ADC即模拟数字转换器(全称:Analog-to-digital converter)
    是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。
    一个模拟数字转换器可以提供信号用于测量
    与之相对的设备成为数字模拟转换器
2、ADC相关参数
  • 转换速度:和时钟有关,但也受硬件控制
  • 转换精度:stm32f103最高是12bits
  • 转换结果的位置:在一个16位的寄存器里(16>12,因此存在左对齐和右对齐的方式)
  • 转换完成的标志:EOC
  • 分频参数:要根据ADC转换速度来确定最大值,否则时钟太快容易出现ADC转换失常(通常可以设置为最大分频比,使时钟转化最慢)

二、ADC参数配置

由于ADC有单通道和多通道配置之分,所以我们现在结合**例子(外部电压测量)**来实现ADC的配置

示例1:独立ADC单通道单次转换模式

step1:单通道ADC配置
在这里插入图片描述
step2:编写代码
(此处常用函数不再做介绍,同样方法在函数功能adc.c文件下查看功能函数)
在这里插入图片描述
分析
目的:实现外部的电压采集并将采集到的电压通过串口输出

/* USER CODE BEGIN Includes */
#include "stdio.h"//用到的sprintf要包含此头文件
#include"string.h"//strlen用到
/* USER CODE END Includes */

uint32_t ret;//定义一个变量用来代替返回值
char  str[64];//定义一个数组用来存放返回值
HAL_ADC_Start(&hadc1);//启动ADC1(对应引脚PA5)
HAL_ADC_PollForConversion(&hadc1,HAL_MAX_DELAY);//等待转换
ret=HAL_ADC_GetValue(&hadc1);//得到返回值
sprintf(str,
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值