这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32WBA55ADC采集电池电压任务2

共2条 1/1 1 跳转至

STM32WBA55ADC采集电池电压任务2

助工
2025-01-19 13:50:52     打赏

ADCMX中的配置:

image.png

时钟树:

image.png

代码:

#include "main.h"  // 确保包含了必要的头文件
 
// 假设这些变量已经在其他地方定义
extern ADC_HandleTypeDef hadc4;
uint32_t uhADCxConvertedData;
float voltage;
 
int main(void)
{
    // 初始化代码(如HAL库、系统时钟、GPIO等)通常在这里
    // HAL_Init();
    // SystemClock_Config();
    // MX_GPIO_Init();
    // MX_ADC4_Init();  // 确保ADC4已经初始化
 
    while (1)
    {
        // 尝试启动ADC转换
        if (HAL_ADC_Start(&hadc4) != HAL_OK)
        {
            /* ADC转换启动错误 */
            Error_Handler();
        }
 
        /* 等待ADC转换完成,超时时间为10ms */
        if (HAL_ADC_PollForConversion(&hadc4, 10) != HAL_OK)
        {
            /* 转换完成标志未按时设置 */
            Error_Handler();
        }
 
        // 获取ADC转换结果
        uhADCxConvertedData = HAL_ADC_GetValue(&hadc4);
 
        // 计算电压值,假设参考电压为3.3V,ADC分辨率为12位(4096)
        voltage = uhADCxConvertedData * 3.3 / 4096.0;
 
        // 延时1秒
        HAL_Delay(1000);
 
        // 打印信息到串口(确保已经初始化了USART)
        printf("Hello! STM32WBA55CG TEST! Author by keyboard007!\r\n");
        printf("uhADCxConvertedData = %5d\r\n", uhADCxConvertedData);
        printf("voltage = %1.3fv\r\n", voltage);
    }
}
 
// 错误处理函数
void Error_Handler(void)
{
    // 用户可以在这里添加错误处理代码
    while (1)
    {
        // 例如,可以闪烁LED或执行其他错误指示操作
    }
}

 

KEIL界面ADC初始代码:

image.png


院士
2025-01-19 15:49:36     打赏
2楼

ADC的应用感觉也不是太容易的事情


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]