STM32F407 ADC——电压采集和温度测量

本文详细解释了STM32F4的ADC电压采集过程,涉及参数设置(如分辨率、扫描模式、转换顺序等)、软件触发、温度测量计算方法,并介绍了如何在Keil中编写实现代码。同时讨论了ADC的工作原理,包括数据处理和中断机制。

ADC——电压采集

初始化参数解析

首先在CubeMx当中新建工程,设置一些初始化的参数,具体如下图所示。

在这里插入图片描述
下面具体解释一下。
ADC_Resolution:配置ADC的分辨率,可选的分辨率有12位、10位、8位和6位。分辨率越高,AD转换数据精度越高,转换时间也越长;分辨率越低,AD转换数据精度越低,转换时间也越短。
ScanConvMode:可选参数为ENABLE和DISABLE,配置是否使用扫描。如果是单通道AD转换使用DISABLE,如果是多通道AD转换使用ENABLE。
ADC_ContinuousConvMode:可选参数为ENABLE和DISABLE,配置是启动自动连续转换还是单次转换。如果设置为DISABLE,则是单次转换。两者的区别在于连续转换直到所有的数据转换完成后才停止转换,而单次转换则只转换一次数据就停止,要再次触发转换才可以。所以如果需要一次性采集1024个数据或者更多,则采用连续转换。
ADC_ExternalTrigConvEdge:外部触发极性选择,如果使用外部触发,可以选择触发的极性,可选有禁止触发检测、上升沿触发检测、下降沿触发检测以及上升沿和下降沿均可触发检测。
ADC_ExternalTrigConv:外部触发选择。可根据项目需求配置触发来源。实际上,我们一般使用软件自动触发。软件触发当设置开始转换时ADC会立即启动转换,硬件触发则需要等待指定的外部事件发生时ADC才会启动转换。
ADC_DataAlign:转换结果数据对齐模式,可选右对齐ADC_DataAlign_Right或者左对齐ADC_DataAlign_Left。一般我们选择右对齐模式。
ADC_NbrOfChannel:AD转换通道数目。
ADC_Mode:ADC工作模式选择,有独立模式、双重模式以及三重模式。
ADC_Prescaler:ADC时钟分频系数选择,ADC时钟是有PCLK2分频而来,分频系数决定ADC时钟频率,可选的分频系数为2、4、6和8。
ADC_DMAAccessMode:DMA模式设置,只有在双重或者三重模式才需要设置,可以设置三种模式,具体可参考参考手册说明。
ADC_TwoSamplingDelay:2个采样阶段之前的延迟,仅适用于双重或三重交错模式。

一般过程

在CubeMx当中设置完初始参数之后,在keil当中编写代码。

 while (1)
  {
   
   
	HAL_ADC_Start(&hadc1);  //开启ADC转换
	HAL_ADC_PollForConversion(&hadc1,50);  //等待ADC转换结束
	if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)) //获取转换状态
		{
   
   
			Voltage = ((float)
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值