STM32_ADC单通道单次采集

2019-10-09来源: eefocus关键字:STM32  ADC  单通道  单次采集

一、RCC时钟配置

该函数位于在bsp.c文件下面;


使能RCC时钟:RCC_APB2Periph_ADC1


二、引脚配置

 

该函数位于在adc.c文件下面;


对AD通道2所使用的引脚进行配置。


问题:


细心的人可能会发现数据手册中PA2引脚的复用功能是“ADC123_IN2”,我们明明使用的ADC1,为什么不是ADC1_IN2或者ADC2_IN2?


大家先想一下为什么是ADC123_IN2,最后我会揭晓答案。


三、ADC配置

该函数位于在adc.c文件下面;


对AD进行配置。


配置的每一条语句都有注释,请看源代码,重点讲一下“ADC_Channel_2”,这里必须和上面引脚配置对应起来,也就是通道的引脚配置一致才行。


四、电压检测

该函数位于在adc.c文件下面;


调用这个接口就可以采集电压值。


函数使用单通道单次,软件触发采样电压值,这里采样8次(更加自己情况可以选择多次),算平均,最后得出电压值(1000倍值)。


五、主函数应用

该函数位于在main.c文件下面;


主要就是采集电压,通过串口打印出来(1000倍值)。


 


六、揭晓ADC123_IN2


上面的问题有自己想明白了的吗?


其实很简单的,ADC123_IN2顾名思义,它就是包含了ADC1、ADC2、ADC3的IN2的意思。也就是说,你们使用ADC2的通道2也是这个“ADC123_IN2”通道。


方便大家学习,我把两个工程都上传至360云盘,不行的朋友可以亲自下载代码试试。


对比的软件工程下载地址:


https://yunpan.cn/cPGRAYZrdvdPf 访问密码 2ce1

关键字:STM32  ADC  单通道  单次采集 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic476484.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32的ADC基本配置
下一篇:怎样用STM32 ADC测量电压(中断方式)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stm32 看门狗 BKP(HAL库)
(一)概述stm32有两个看门狗:硬件看门狗(LSI 40KHz,时间精度不高)和窗口看门狗(APB1)。(二)硬件看门狗实现代码IWDG_HandleTypeDef hiwdg; // 硬件看门狗初始化static void MX_IWDG_Init(IWDG_HandleTypeDef *pHiwdg){    pHiwdg->Instance = IWDG;    pHiwdg->Init.Prescaler = IWDG_PRESCALER_4;    pHiwdg->Init.Reload = 0xFFF; // Tout
发表于 2019-11-16
STM32 HAL库学习系列第11篇---定时器TIM---看门狗基本配置及使用
基本配置使用cube配置溢出时间记住准时喂狗独立看门狗: /* IWDG 1s 超时溢出 */  MX_IWDG_Init(IWDG_PRESCALER_64,625);  /* 启动独立看门狗 */  HAL_IWDG_Start(&hiwdg);   LED1_ON;   /* while部分是我们在项目中具体需要写的代码,这部分的程序可以用独立看门狗来监控   * 如果我们知道这部           分代码的执行时间,比如是50ms,那么我们可以设置独立看门狗的 &nb
发表于 2019-11-16
STM32-自学笔记(18.独立看门狗,使用到的库函数)
为16IWDG_Prescaler_256设置IWDG预分频值为256IWDG_Prescaler_32设置IWDG预分频值为32例子:IWDG_SetPrescaler(IWDG_Prescaler_8);                //设置IWDG预分频值为82.IWDG_SetReload函数原型:void IWDG_SetReload(u16 Reload)功能:设置IWDG重装载值参数:Reload:IWDG的重装载值。取值范围0~0x0FFF例子:IWDG_SetReload(0xFFF);       
发表于 2019-11-16
HAL库 STM32CubeMX教程五----看门狗(独立看门狗,窗口看门狗)
的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环;或者因为用户配置代码出现BUG,导致芯片无法正常工作,出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 简单说:看门狗的本质就是定时计数器,计数器使能之后一直在累加 而喂狗就是重新写入计数器的值,时计数器重新累加,如果在一定时间内没有接收到喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)STM32的内置看门狗STM32内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗、窗口看门狗)可以用来检测和解决由软件错误
发表于 2019-11-16
HAL库 STM32CubeMX教程五----看门狗(独立看门狗,窗口看门狗)
怎样用STM32CAN总线接口发送和接收数据
,禁止高7位都为隐性,即不能:ID=1111111XXXX。RTR,远程请求位。0,数据帧;1, 远程帧;SRR,替代远程请求位。设置为1(隐性电平);IDE,标识符选择位。0,标准标识符;1,扩展标识符;r0,r1:保留位。必须以显现电平发送,但是接收可以是隐性电平。DLC:数据长度码。0~8,表示发送/接收的数据长度(字节)。IDE,标识符选择位。0,标准标识符;1,扩展标识符;位时序分解为了实现位同步,CAN协议把每一个数据位的时序分解成SS段、PTS段、PBS1段、PBS2段,这四段的长度加起来即为一个CAN数据位的长度。分解后最小的时间单位是Tq,而一个完整的位由8~25个Tq组成。STM32中的CAN接口STM32的芯片
发表于 2019-11-16
怎样用STM32CAN总线接口发送和接收数据
stm8s_iwdg(独立看门狗)
; IWDG_Prescaler_16  = (uint8_t)0x02, /*!< Used to set prescaler register to 16 */  IWDG_Prescaler_32  = (uint8_t)0x03, /*!< Used to set prescaler register to 32 */  IWDG_Prescaler_64  = (uint8_t)0x04, /*!< Used to set prescaler register to 64 */  IWDG_Prescaler_128 = (uint8_t
发表于 2019-11-16
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved