【STM32F4】HAL库 CubeMX(十四)--------ADC实验


前言

STM32F4xx 系列一般都有 3 个 ADC,这些 ADC 可以独立使用,也可以使用双重/三重模式(提高采样率)。STM32F4 的 ADC 是 12 位逐次逼近型的模拟数字转换器。它有 19 个通道,可测量 16 个外部源、2 个内部源和 Vbat 通道的信号。这些通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。

一、ADC是什么?

STM32F407ZGT6 包含有 3 个 ADC。STM32F4 的 ADC 最大的转换速率为 2.4Mhz,也就是转换时间为 0.41us(在 ADCCLK=36M,采样周期为 3 个 ADC 时钟下得到),不要让 ADC 的时钟超过 36M,否则将导致结果准确度下降。
STM32F4 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之后,规则通道才得以继续转换。

二、ADC实验

1.实验所需配置功能

1、ADC1的通道5(PA5)
2、串口发送电压值(可用LCD显示或者OLED显示)

2.功能配置

1、选择ADC1,通道5并且配置PA5的模式。
在这里插入图片描述
在这里插入图片描述
2、配置ADC1的相关参数(初学阶段可以看着原子的配置一一配置)
在这里插入图片描述
在这里插入图片描述
3、配置串口(如有不懂的请看串口那一节,此处不配置)

3.时钟配置

RCC时钟配置如前文一样(此处一般情况是不变的)。
【STM32F4】HAL库 CubeMX(一)--------创建工程(点亮LED)

4.生成代码

在这里插入图片描述

uint16_t ADC_Value;

在这里插入图片描述

HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 50);
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
{
	ADC_Value = HAL_ADC_GetValue(&hadc1);
	printf("PA5 True Voltage value : %.4f \r\n",ADC_Value*3.3f/4096);
	HAL_Delay(500);
}

代码注释就不写了(太难打了),大家可以对应库函数实验代码进行理解。有问题也可以在评论里提出来。一起解决,如果以上有误请提出来,谢谢


总结

大家可以试试其他ADC和通道,也可以获取指定引脚的电压转换值哦。
在这里插入图片描述

STM32F4 HAL ADC是指在STM32F4系列微控制器上使用HAL库进行模数转换(ADC)的操作。引用\[1\]展示了一个使用HAL库进行ADC转换的示例代码。首先,使用HAL_ADC_Start函数启动ADC转换,并使用HAL_ADC_PollForConversion函数等待转换完成。然后,使用HAL_ADC_GetValue函数获取转换结果,并根据公式ADC_Value*3.3f/4096计算出真实电压值。最后,使用printf函数将结果打印出来。引用\[2\]提到,要使用IO口作为ADC功能,需要将IO口配置为模拟输入,并编程相应的ADC通道。需要注意的是,并非所有的IO口都有ADC通道,需要查找数据手册的ADC通道映射表来确定可用的通道。引用\[3\]中提到了一些关于ADC的配置信息,例如采样时间的设置和规则序列寄存器的使用。总之,STM32F4 HAL ADC是一种使用HAL库进行ADC转换的方法,可以方便地实现模拟信号的采集和处理。 #### 引用[.reference_title] - *1* [【STM32F4HAL库 CubeMX(十四)--------ADC实验](https://blog.csdn.net/qq_47877230/article/details/109408175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32F4ADC介绍](https://blog.csdn.net/m0_54484228/article/details/124354868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值