打印
[MM32硬件]

灵动适合用于电池电压曲线记录和长时间电压趋势采样应用

[复制链接]
521|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丢丢手绢666|  楼主 | 2025-4-30 00:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
应用于电池曲线记录的典型架构
你可以配置如下架构,进行电压趋势采样:

ADC 配置为连续采样模式 + DMA

定时器设定采样频率(如每5秒或每分钟)

ADC转换结果自动搬运到缓冲区

主程序或中断中对数据滤波、压缩或存储到 Flash

示例:每10秒采样一次电池电压,记录2小时
设置定时器触发 ADC 每10s启动

使用 DMA 采样 1 个通道(电池电压)

每次采样结果存入数组(720 个点 = 2 小时)

可加入中值滤波/平均计算去除电源纹波

灵动MCU(以 MM32F103 系列为例)使用 ADC + DMA + Timer 实现每 10 秒采样电池电压并保存到数组的示例代码框架

应用说明
MCU型号:MM32F103C8T6(与STM32F103结构类似)

采样周期:10 秒

记录总时间:2 小时

采样通道:1 个(假设接在 ADC1_IN1 = PA1)

使用资源:TIM2定时器,ADC1模块,DMA1_Channel1,内部参考电压可选

缓冲区:720 点(2 小时 × 60 分钟 × 每 10 秒一次)

代码结构(主逻辑)
#include "mm32_device.h"

#define SAMPLE_COUNT 720

uint16_t adc_buffer[SAMPLE_COUNT];  // 存放电压数据
volatile uint16_t sample_index = 0;

void ADC_DMA_Init(void);
void TIM2_Init(void);

int main(void) {
    ADC_DMA_Init();   // 初始化 ADC + DMA
    TIM2_Init();      // 设置定时器触发 ADC

    while (1) {
        // 主循环中可添加处理逻辑,如滤波、数据分析
        // 例如每次 sample_index 增长时,触发存储或显示
    }
}




使用特权

评论回复
沙发
丢丢手绢666|  楼主 | 2025-4-30 00:27 | 只看该作者
ADC + DMA 初始化

void ADC_DMA_Init(void) {
    // 1. 开启时钟
    RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_ADC1EN;
    RCC->AHBENR  |= RCC_AHBENR_DMA1EN;

    // 2. 配置PA1为模拟输入
    GPIOA->CRL &= ~(0xF << (1 * 4));  // 清除位
    GPIOA->CRL |=  (0x0 << (1 * 4));  // 模拟输入

    // 3. 配置 DMA
    DMA1_Channel1->CPAR  = (uint32_t)&ADC1->DR;
    DMA1_Channel1->CMAR  = (uint32_t)adc_buffer;
    DMA1_Channel1->CNDTR = SAMPLE_COUNT;
    DMA1_Channel1->CCR   = DMA_CCR1_MINC | DMA_CCR1_CIRC | DMA_CCR1_PSIZE_0 | DMA_CCR1_MSIZE_0 | DMA_CCR1_TCIE | DMA_CCR1_EN;

    // 4. 配置 ADC
    ADC1->SQR1 = 0; // 1个通道
    ADC1->SQR3 = 1; // 通道1 (PA1)
    ADC1->CR1  = ADC_CR1_SCAN;
    ADC1->CR2  = ADC_CR2_EXTSEL_1 | ADC_CR2_EXTTRIG | ADC_CR2_DMA | ADC_CR2_ADON;

    // 开启 ADC 并校准
    ADC1->CR2 |= ADC_CR2_ADON;
    for (volatile int i = 0; i < 1000; i++);  // 等待稳定
    ADC1->CR2 |= ADC_CR2_CAL;
    while (ADC1->CR2 & ADC_CR2_CAL);
}


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

474

帖子

0

粉丝