stm32adc读取电压 hal
时间: 2025-02-08 22:32:45 浏览: 40
### 使用 STM32 HAL 库进行 ADC 电压读取
#### 配置 CubeMX 设置
在 STM32CubeMX 中配置 ADC 功能时,需选择合适的参数以确保能够正确初始化外设。具体操作如下:
- 打开 STM32CubeMX 并加载目标芯片型号。
- 进入“Pinout & Configuration”界面,在 Peripherals 列表中找到并启用 ADC 外设。
- 对于 ADC 的模式选择,可以选择单次转换模式或是连续转换模式;对于本案例,默认采用单次转换即可满足需求[^1]。
#### 初始化代码生成
完成上述硬件抽象层 (HAL) 参数设定之后,点击 GENERATE CODE 按钮让工具自动生成必要的驱动程序框架文件以及相应的初始化函数调用语句。这些代码会自动加入到 main.c 文件当中去执行初步的系统级和外设级别的启动工作。
#### 编写应用逻辑部分
为了实现简单的ADC采样功能,可以在 `main()` 函数内编写如下所示的应用逻辑片段:
```c
#include "stm32f4xx_hal.h"
// 声明全局变量用于存储ADC结果
uint32_t adcValue;
int main(void){
/* Reset of all peripherals, Initializes the Flash interface and Systick. */
HAL_Init();
/* Configure the system clock to xxx MHz */
SystemClock_Config();
// 调用由STM32CubeMX生成的初始化函数
MX_GPIO_Init();
MX_ADC1_Init();
while (1){
if(HAL_OK == HAL_ADC_Start(&hadc1)){
if(HAL_OK == HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY)){
adcValue = HAL_ADC_GetValue(&hadc1);
// 将adcValue转化为实际电压值
float voltage = ((float)(adcValue * 3.3)) / 4095;
// 如果需要通过串口发送数据,则在此处添加相应代码
HAL_Delay(100); // 添加适当延时防止过快循环
}
}
}
}
```
此段代码实现了最基本的 ADC 单通道一次性的测量过程,并计算出了对应的实际输入电压大小[^3]。
阅读全文
相关推荐


















