1.单次采集模式

  1.在STM32CUBMX中设置为单次采集模式

  2.在C文件中用HAL_ADC_START()函数启动ADC

  3.用HAL_ADC_PollForConversion()延时等待采集完成,一般10MS即可

  4.用HAL_IS_BIT_SET(HAL_ADC_STATE(),HAL_ADC_STATE_REG_EOC)判断ADC转换是否完成,如果完成置1

  5.接收数据,在主程序中启动ADC自动校准程序HAL_ADCEx_Calibration_Start(&hadc);注意此程序再HAL_ADC_EX.H中

2.连续采集模式

  1.在STM32CUBMX中设置为连续采集模式

  2.在main函数中只需启动一次HAL_ADC_START()函数

  3.在C文件中用do while函数反复循环,并需要延时以及判断标志位

  

#include "bsp_adc.h"

void ADC_Demo(void)
{ uint16_t ADC_Temp1=;
uint32_t ADC_Tempsum=;
float ADC_Temp2=;
uint8_t i=; do{ HAL_ADC_PollForConversion(&hadc,);
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc),HAL_ADC_STATE_REG_EOC))
{
ADC_Tempsum += HAL_ADC_GetValue(&hadc);
i++;
}
}while(i<); ADC_Temp1 =ADC_Tempsum/;
ADC_Temp2 = (float)ADC_Temp1*3.3/;
printf("ADC采集电压值= %f V\r\n",ADC_Temp2);
printf("ADC采集电压值= %d \r\n",ADC_Temp1);
}

3.连续采集中断模式

  1.在STM32CUBMX中ADC的选项内部NVIC下面配置中断打钩

  2.在main函数中用HAL_ADC_Start_IT(&hadc)函数开启ADC采集以及ADC中断;

  3.在pbdata.c中调用中断回调函数HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);每次采集完成就会中断一次

  

//下面为公共文件
#include "pbdata.c"
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
static uint8_t i=;
if(i<)
{
ADC_try[i++]=HAL_ADC_GetValue(hadc);
}
else
i=;
} //下面为bsp_adc.c文件
void ADC_Demo(void)
{
uint8_t i;
uint16_t ADC_Temp1=;
float ADC_Temp2=;
uint16_t ADC_num=;
for(i=;i<;i++)
{
ADC_num+=ADC_try[i];
}
ADC_Temp1=ADC_num/;
ADC_Temp2=ADC_Temp1*3.3/;
printf("ADC采样平均值= %f V\r\n",ADC_Temp2); }

  

ADC新库的更多相关文章

  1. Bonobo创建新库出错,解决方案

    创建新库出错如下: Native library pre-loader is trying to load native SQLite library "D:\wwwroot\localho ...

  2. openerp模块收藏 auto_setup 自动帮你完成建新库时必做几个操作(转载)

    auto_setup 自动帮你完成建新库时必做几个操作 原文:http://shine-it.net/index.php/topic,6777.0.html 模块地址: https://github. ...

  3. mysql:创建新库,新表,查看character

    创建新库create database wenda; 创建新表drop table if exists `user`;create table `user`( `id` int(11) unsigne ...

  4. odoo XMLRPC 新库 OdooRPC 尝鲜

    无意中发现了python居然有了OdoRPC的库,惊喜之下赶紧尝试一番,比XMLRPC简洁了不少,机制看样子是利用的JsonRPC. #原文出自KevinKong的博客http://www.cnblo ...

  5. GIT 旧库迁移到新库

    1.在gitlab创建新项目,得到SSH地址2.用gitextent打开旧项目,记得所有分支合并成一个(如果确实无法合并,则需要一个个复位推送)3.复位到需要推送的节点分支4.打开菜单栏的档案库,管理 ...

  6. g2o扩展,然后重新编译生成新库。

    orb作者有g2o扩展,g2o原作者也有g2o扩展,等各项基本功扎实以后,考虑把他们整合在一起,再加上高博扩展的g2o,统一cmake,make,然后能make install 正常使用,就最好了.

  7. 介绍一个新库: Norns.Urd.HttpClient

    Norns.Urd.HttpClient Norns.Urd.HttpClient 基于AOP框架 Norns.Urd实现, 是对 System.Net.Http下的 HttpClient封装,让大家 ...

  8. HAL驱动库学习-ADC

    如何使用ADC驱动库 1  实现如下两个函数     a: HAL_ADC_MspInit()使能ADC时钟,设置时钟源, 使能ADC Pin,设置为输入模式,可选 DMA,中断     b:HAL_ ...

  9. 如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap"

    刚看到Visual Studio 2013 Preview - ASP.NET, MVC 5, Web API 2新功能搶先看 看了下VS2013带来的"新特性",直觉上看,除了引 ...

随机推荐

  1. Python爬虫进阶三之Scrapy框架安装配置

    初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 ...

  2. Javascript变长参数和默认参数

    /* javascript 变长参数 * 实参少于形参: 剩下的参数如果没有默认值,将解析为undefined * 实参多于形参: 剩下的实参可以通过 "实参对象"-argumen ...

  3. idea注释字体倾斜的解决办法

    File-->Settings-->Editor--> Color Scheme-->Language Defaults-->Comments-->Line con ...

  4. Word2007发布博客

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  5. Android-Sqlite-升级操作

    一想到Android到数据库,只需要想到一个类 SQLiteOpenHelper,然后写一个类继承 SQLiteOpenHelper,重写构造方法,对数据库进行配置 public class MySQ ...

  6. 后台web请求代码(含https,json提交)

    后台web请求 namespace XXXX.Utilites { using System; using System.Collections.Generic; using System.IO; u ...

  7. Lucene--FuzzyQuery与WildCardQuery(通配符)

    FuzzyQuery: 创建索引: IndexWriter writer = new IndexWriter(path, new StandardAnalyzer(), false); writer. ...

  8. TSQL--SQL SERVER 常用系统变量

    ----------全局变量select @@version as '版本';---------------------------返回当前数据库的版本信息 select APP_NAME ( ) a ...

  9. #测试框架推荐# test4j,数据库测试

    # 背景 后端都是操作DB的,这块的自动化测试校验的话,是需要数据库操作的,当然可以直接封装方法来操作数据,那么有没有开源框架支持数据操作,让我们关注写sql语句?或者帮我们做mysql的断言呢? # ...

  10. 谈一谈PHP计划任务

    公司所用计划任务均是大概这样子的: */ * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne & ...