q825117996 发表于 2022-1-17 14:09:34

adc采集内部opa1通道不正常

将opa1设置成pga模式将opa输出PC4与adc输入PC9短接    运行V = (float)GetSingleChannelVoltage_DMA(FL_ADC_EXTERNAL_CH0)/1000;   采集数据正常
断开opa输出与adc输入   运行V = (float)GetSingleChannelVoltage_DMA(FL_ADC_INTERNAL_OPA1)/1000;   采集电压始终为0.975v

我是一只鱼21 发表于 2022-1-18 15:49:39

看现象感觉是 计算公式时调用的参数反了,把公式中的ram和ram互换下呢

q825117996 发表于 2022-1-18 17:48:38

我是一只鱼21 发表于 2022-1-18 15:49
看现象感觉是 计算公式时调用的参数反了,把公式中的ram和ram互换下呢

uint32_t GetSingleChannelVoltage_DMA(uint32_t channel)
{
    uint32_t GetChannelVoltage;
    GetDMAChannelSample(channel);
    GetChannelVoltage = ((uint64_t)DMAResult * ADC_VREF * 3000) / (DMAResult * 4095);

    return GetChannelVoltage;
}

DMAResult跟DMAResult 对调一下就好了   那就是库函数有问题

我是一只鱼21 发表于 2022-1-19 13:52:40

q825117996 发表于 2022-1-18 17:48
uint32_t GetSingleChannelVoltage_DMA(uint32_t channel)
{
    uint32_t GetChannelVoltage;


其实这个取决于扫描顺序,如果不想对调这两个顺序的话,你也可以将ADC结构体配置的扫描顺序修改下也行。

我是一只鱼21 发表于 2022-1-19 13:55:42

q825117996 发表于 2022-1-18 17:48
uint32_t GetSingleChannelVoltage_DMA(uint32_t channel)
{
    uint32_t GetChannelVoltage;


这个测试函数倒是可以再优化下,让兼容性更好一点
页: [1]
查看完整版本: adc采集内部opa1通道不正常