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
看现象感觉是 计算公式时调用的参数反了,把公式中的ram和ram互换下呢 我是一只鱼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 对调一下就好了 那就是库函数有问题 q825117996 发表于 2022-1-18 17:48
uint32_t GetSingleChannelVoltage_DMA(uint32_t channel)
{
uint32_t GetChannelVoltage;
其实这个取决于扫描顺序,如果不想对调这两个顺序的话,你也可以将ADC结构体配置的扫描顺序修改下也行。 q825117996 发表于 2022-1-18 17:48
uint32_t GetSingleChannelVoltage_DMA(uint32_t channel)
{
uint32_t GetChannelVoltage;
这个测试函数倒是可以再优化下,让兼容性更好一点
页:
[1]