历史上的今天

今天是:2024年08月27日(星期二)

正在发生

2021年08月27日 | STM32 ADC学习

发布者:bluepion 来源: eefocus关键字:STM32  ADC学习  转换器 手机看文章 扫描二维码
随时随地手机看文章

12位ADC是一种逐次逼近型模拟数字数字转换器。它有多达18个通道,可测量16个外部和2个内部信号源。

 

ADC的输入时钟不得超过14MHZ,它是由PCLK2经分频产生。

 

如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。

ADC通常要与DMA一起使用 这里只是简单的用库配置ADC 不断扫描来实现ADC的应用。

首先配置GPIO与ADC的时钟:

ADC_InitTypeDef  ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

GPIO_InitStructure.GPIO_Pin  =GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AIN;
GPIO_Init(GPIOB,&GPIO_InitStructure); //默认速度为两兆

配置ADC的运行:

ADC_InitStructure.ADC_Mode              = ADC_Mode_Independent;  //独立模式
ADC_InitStructure.ADC_ScanConvMode      =DISABLE;      //连续多通道模式
ADC_InitStructure.ADC_ContinuousConvMode =ENABLE;      //连续转换
ADC_InitStructure.ADC_ExternalTrigConv  = ADC_ExternalTrigConv_None; //转换不受外界决定
ADC_InitStructure.ADC_DataAlign         =ADC_DataAlign_Right;   //右对齐
ADC_InitStructure.ADC_NbrOfChannel      =1;       //扫描通道数
ADC_Init(ADC1,&ADC_InitStructure);
ADC_RegularChannelConfig(ADC1,ADC_Channel_9, 1,ADC_SampleTime_1Cycles5); //通道X,采样时间为1.5周期,1代表规则通道第1个这个1是啥意思我不太清楚只有是1的时候我的ADC才正常。
ADC_Cmd  (ADC1,ENABLE);             //使能或者失能指定的ADC
ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能或者失能指定的ADC的软件转换启动功能

1
这里我用的是ADC1的9通道 PB1引脚。

也用一些默认的配置函数同GPIO 的一样例如: ADC_StructInit

ADC_InitTypeDef structureADC_InitTypeDef定义于文件“stm32f10x_adc.h”:

typedef struct

{

u32 ADC_Mode; FunctionalState ADC_ScanConvMode; FunctionalStateADC_ContinuousConvMode; u32 ADC_ExternalTrigConv; u32ADC_DataAlign; u8 ADC_NbrOfChannel;

} ADC_InitTypeDef


注意:为了能够正确地配置每一个ADC通道,用户在调用ADC_Init()之后,必须调用ADC_ChannelConfig()来配置每个所使用通道的转换次序和采样时间。


然后就是不停的读;

u16 TestAdc(void)
{
u16 adc;
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET); //检查制定ADC标志位置1与否 ADC_FLAG_EOC 转换结束标志位
adc=ADC_GetConversionValue(ADC1);

returnadc;//返回最近一次ADCx规则组的转换结果
}


这个程序的8位单片机风格很重,真正的ADC一定要放在DMA或是中断之中。

关键字:STM32  ADC学习  转换器 引用地址:STM32 ADC学习

上一篇:STM32开发板基础教程(七) - ADC with DMA
下一篇:STM32F103和STM32F401的ADC多通道采集DMA输出

推荐阅读

据报道,近日加州大学圣迭戈分校的一个研究团队研发了一种透明的类似鳗鱼的机器人,可以借助人造肌肉在水下前行,未来或潜伏在海洋中去研究海底世界。研究人员Caleb Chrisanson表示:“要潜入鱼群真的很难,特别是如果这是一个机器人。” ChrisTIanson是加州大学圣迭戈分校的一名博士生,他所在的研发团队包括了工程师和海洋生物学家。他们创造的机器...
5G订单“真的”来了!原本外界预期明、后年才会正式降临的 5G 商机,因中美贸易战恶斗,竟意外地提早报到!原本大家预估是明年、甚至 2021 年后才会发生的事,没想到,从 2019 年第二季开始,5G 订单春燕已提早来报到。位于新北市林口区华亚科技园区的砷化镓晶圆厂——稳懋半导体,偌大的厂房依旧矗立着,乍看之下,似乎没什么变化,但在工厂内部出...
动力总成技术及电气化解决方案领先企业纬湃科技,已经开始将适配于东风乘用车的高度集成的电动轴驱系统(即EMR3)投入市场。对纬湃科技而言,这是继2019年底纬湃科技为标致雪铁龙集团和现代汽车投产EMR3产品后再度受到中国本土汽车制造商的追捧。为东风乘用车量产EMR3标志着纬湃科技又一次在市场上大获成功,具有里程碑意义。东风乘用车将这款EMR3产品搭载...
全球半导体产业早期时代,以德州仪器、仙童半导体、飞利浦为代表的欧美综合型IDM公司不仅负责芯片设计、制造和封测,甚至拥有内部产线开发能力,基本不采用外部设备和技术,早期的半导体产业链各环节可谓血脉相连。随着产业趋于分工合作,晶圆厂在全球开枝散叶,并滋养当地的设备和材料供应商茁壮成长。例如1987年成立的台积电,经过30多年的深耕发展,其...

史海拾趣

问答坊 | AI 解惑

简洁红外遥控开关

使用红外遥控作为开关控制的制作并不少,你可以在网络上找到一些好的设计。不过要实现遥控开关,一般需要一个遥控器,一个接收器。 在这里你将有机会做这样的一个设备,只需要做接收部分就可以了,发射部分可以使用普通的电视遥控器就可以 ...…

查看全部问答∨

JTAGICE mkII ISP下载开源计划

处理器: ATMega128L 系统时钟: 外部16M晶体震荡器 通信终端: RS-232 <-----> USART0 溶丝描述: [EESAVE=0][CKOPT=0][BODLEVEL=1][BODEN=0][CKSEL=1111 SUT=10] 软件平台: ICCA ...…

查看全部问答∨

12864C系列中文液晶显示模块使用说明书

C系列中文模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供 三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口(OCMJ4X16A/B无串行接口)。所 有的功能,包含显示RAM,字型产生器,都包含在一 ...…

查看全部问答∨

03月31日 【EEWORLD带你DIY】示波器方案讨论

报名页面:https://www.eeworld.com.cn/formguide/index.php?formid=90 (请在备注中注明自己所参与的部分) DIY示波器活动QQ群:16254999 在整体方案上参考<无线电>上的示波器设计方案,采用STM32F103RBT6作为主控CPU,LPC2103作为辅助CPU,对 ...…

查看全部问答∨

热电偶测温晶闸管调压不稳的问题

用热电偶测温,经单片机pid调节,触发固态继电器实现线性升温 但当电网电压变化时,升温曲线不稳定,很不线性 原因到底出在哪里呢,高次谐波?继电器?pid参数?还是其它因素,希望大家各抒己见,十分希望能得到各位的帮助,谢谢!…

查看全部问答∨

mp3文件如何存入到nor flash中

给分虽然少,但已经是本人分数的多一半了,不好意思哈 现在具体说一下问题的内容: 核心是把mp3文件烧录到arm7板的片外nor flash中,如果没有操作系统,也没有文件系统的话,我应该怎么考虑呢?按照字节串口传输吗?我该如何把mp3文件转成字节的 ...…

查看全部问答∨

哪个有在JZ4730上PS2的驱动开发经验的?

有的话,能否赐教下本人,给个思路,或者可以参照系统中的哪些文件,都可以,只要是有帮助的都有分…

查看全部问答∨

vc编的程序转为evc4在WINCE上运行问题

VC6编的程序,想在ARM9模块上运行,程序是关于串口输入输出的,还有同上位机数据库连接的内容,用了MFC。 请问一下,我这个程序转为EVC4程序,要作些什么,难度几何?…

查看全部问答∨

.net 1.0 调用.net 2.0的 dll

做一个程序 需在WinCE系统.net 1.0 上运行,有什么方法用.net 2.0里实现的功能吗?比如实现WebBrowser功能,能否引用System.Windows.Forms.dll来实现? 虽然几乎不可能,但我还是要问,想知道为什么不行?…

查看全部问答∨

111

111222222 [ 本帖最后由 lelede1987 于 2011-3-30 18:11 编辑 ]…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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