1.关于ADC输入通道与GPIO口的输入关系需要查看STM32芯片手册(p31)而非数据手册。
2.外部触发源指的是触发ADC采样的触发信号,这与1的GPIO口输入是两个不同概念。而JEXTBEL[2:0]或者EXTBEL[2:0]决定具体是哪个触发源。
3.大的方向,触发模式分为了 ADON位触发启动和外部触发启动ADC转换两种。用后者就行了
4.当我们使用一个ADC要采集多个通道时,单独规则组由于只使用了一个数据寄存器,并且是整个组转换完后才会触发中断,因此数据会覆盖,这种情况下需要使用DMA方法(后面采用试试),这时数据写到SRAM中了。而单独使用注入组总共可最多有四个通道,对应四个数据寄存器,不存在覆盖。
5.关于注入通道和规则通道,原子说的很形象,前者相当于中断,能打断后者。并且举得监控例子不错
6.双ADC模式是指ADC1和ADC2两个ADC同时使用的情况。其实对于我们如果使用通道少的话,一个ADC就够用了,比如使用一个注入组就能采集四个通道,而使用规则组就可以采集16个通道,一起就能20个通道了.
二、利用STM32内部温度传感器测量温度:
32的温度值与电压值成正比关系,利用下列公式得出温度
温度(°C) = {(V25 - VSENSE) / Avg_Slope} + 25
这里:
V25 = VSENSE在25°C时的数值
Avg_Slope =温度与VSENSE曲线的平均斜率(单位为mV/ °C 或 μV/ °C)
注意这里的V25和Vsense对应的是电压值,参考32的芯片手册可知,V25典型值为1.43,Avg_Slope为4.3mv/°C,Vsense即当前要测量温度对应的电压值,当3.3V对应3095,因此当前电压的计算可由比例关系Vsense = 3.3*当前寄存器采样值/4095。然后由上面公式得到当前温度。
//另注:自带的温度传感器是测试芯片自身温度,用其来测环境温度肯定有误差
关键字:STM32 ADC功能
引用地址:
STM32使用ADC功能
推荐阅读最新更新时间:2024-03-16 15:41
STM32单片机学习(4) 独立看门狗实验
/* * * 软件功能: 独立看门狗实验 * */ #include stm32f10x.h #include delay.h /* 函数: void RCC_Configuration(void) 功能: 配置系统时钟 参数: 无 返回: 无 / void RCC_Configuration(void) { ErrorStatus HSEStartUpStatus; //定义外部高速晶体启动状态枚举变量 RCC_DeInit(); //复位RCC外部设备寄存器到默认值 RCC_HSEConfig(RCC_HSE_ON); //打开外部高
[单片机]
STM32笔记--使用ST-Link下载hex文件
嵌入式产品开发过程中,日常使用ST-Link下载程序时都是在MDK编译器中下载源代码,但ST-Link其实也可以直接下载hex文件,STM32官方就有提供一个ST-Link下载程序的工具STM32 ST-LINK Utility,只需三步,就能将hex文件下载到单片机中,相比使用串口下载hex文件繁琐的步骤操作,真香 1 ST-LINK Utility下载安装 1.1 下载ST-LINK Utility ST-LINK Utility是意法半导体提供的开源工具,直接在意法半导体官网即可下载 下载链接:https://www.st.com/en/development-tools/stsw-link004.html 下载界面
[单片机]
STM32掌机教程3,工程模板与带灯按键测试
我们需要“脚手架” 关于代码,我想体现出这么一个过程:我是如何一步一步修改代码的。我认为,从学习的角度来考虑,直接看最终的代码没有什么意义。 写代码就像工人盖房子,盖房子过程中,工人要搭建脚手架;房子盖好以后,脚手架要拆除。直接领着学生看盖好的房子,说,你就照着这个样子来盖房子,学生是做不出来。他不知道怎么搭建脚手架,甚至都不知道什么是脚手架。 所以我打算这个系列的讲义,每一篇代码都在上一篇的基础上做一些改进,保留代码“进化”的过程。有些过程代码在最终的代码中不会体现,但是也很重要,就像房子盖好以后,你看不到脚手架一样。我们需要脚手架。 目前用到的代码先用压缩包的形式上传,等教程写完以后,后续代码的维护使用Git。
[单片机]
STM32 外设使用的基本配置顺序
引脚重映射配置过程(串口1为例): 1.使能GPIO时钟(重映射后的IO); 使能功能外设时钟(例如串口1); 2.使能AFIO时钟。重映射必须使能AFIO时钟: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 3.开启重映射。 GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE); 根据第一个参数,来确定是部分重映射还是全部重映射 中断优先级设置步骤 1.系统运行后先设置中断优先级分组。 调用函数:
[单片机]
(三)stm32之串口通信DMA传输完成中断
一、DMA功能简介 首先唠叨一下DMA的基本概念,DMA的出现大大减轻了CPU的工作量。在硬件系统中,主要由CPU(内核)、外设、内存(SRAM)、总线等结构组成,数据经常要在内存和外设之间,外设和外设之间转移。例如:CPU需要处理从外设采集回来的数据,CPU需要先将数据从ADC外设的寄存器读取到内存中(变量)去,然后进行运算处理,这是一般的解决方法。CPU的资源是非常宝贵的,我们可以设法把转移的工作交给其他部件来完成,CPU把更多的资源用于数据运算和中断响应上,如此DMA便登场了。DMA正是为CPU分担数据转移工作,因为DMA的存在,CPU才被解放出来,它可以在数据转移的同时进行数据运算,相应中断,大大提高了效率。 二、DM
[单片机]
STM32关于USART的问题集锦
1、STM32103USART1死机 问:voidUSART_Receive(USART_TypeDef*USARTx) { if(USART_GetFlagStatus(USARTx,USART_FLAG_RXNE)==SET) { USART_ClearFlag(USARTx,USART_FLAG_RXNE); s =USART_ReceiveData(USART1); delay(1000); s =USART_ReceiveData(USART1); delay(1000); s =USART_ReceiveData(USART1); delay(1000); write_c
[单片机]
STM32 ADC应用要注意的几点问题
所有的STM32芯片中都带有逐次逼近型ADC模块,关于它的应用非常广泛和频繁。不过,应用过程中时常也会遇到些问题,这尽力小结下,与大家分享出来算作一些提醒。 1、Vdda没有供电或没有正常供电;STM32系列众多,该参数不可一概而论,细节请参考各个芯片数据手册。 2、采样电阻取值不合适,跟采样时间不匹配,经常表现为输入电阻过大、配置的采样时间偏短。实际设计时可以参考下STM32官方各系列评估板的相关电路。另外可以参考ST官方的应用笔记AN2834。关于ADC 应用其它的应用笔记,可以去WWW.STMCU.COM.CN搜索ADC即可。 3、ADC上电开启到稳定需要一段时间,即Tstab,该参数在数据手册里有介绍。在
[单片机]
认识STM32的复位与电源管理
复位功能是一个非常重要的功能,大到PC,小到单片机,每一台计算机系统都有。在我小时候,去网吧的时候,但凡是电脑出现任何一点小问题,网管的第一回答一定是重启。重启和复位就是同一个意思。 发展到现在PC已经很稳定了,复位按钮慢慢的淡出我们的视野,但是在主板上我们依然可以找到复位电路的存在。单片机上的复位功能也有着类似的变化,在我们学单片机那个年代,需要在单片机的外部一个复位电路,从专用引脚上接一个电阻和电容组成的复位电路。如果没有这个电路,单片机就没法工作。现在的新款单片机都把复位功能内置到单片机中。如果是开发项目要手动复位,我们可以在复位引脚上接一个按键用来手动复位。 复位 复位功能的作用是让RAM 中的数据清空,让所有连接
[单片机]