我是用adc两个通道分别采集两个电压信号,因为需要不停的切换通道采集,主控是stm32,我程序是没三秒切换一次通道,测试过程中发现,切换完通道后,会存在已经切换到通道a了,但是还是采集的通道b的电压,有老哥董是什么原因吗
uint32_t tempA_PH;
static uint8_t count_PH = 0;
float PH_V;
Delay_us(50);
while(Read_Con_CS1238()!=0x50)//读取CS1238寄存器循环判断切换通道是否成功,切换成功则跳出
{
Con_CS1238(RefOut_OFF | SpeedSelct_40HZ | PGA_1 | CH_A);//配置CS1238芯片
}
Delay_us(50);
tempA_PH=processData();//读取ADC
Voltage_PH[count_PH] = (float)tempA_PH*1.25/8388607;//转换十进制浮点数电压
Voltage_PH[0]=0;
Voltage_PH[1]=0;
count_PH++;
每次进函数之前都是while循环去判断cs1238芯片寄存器的通道寄存器有没有改过来,改过来就继续,然后我以为是在adc转换电压过程中我切换了通道,切换通道后他转移的还是上一个通道的电压,我就直接把数组前面两个置0,不要了,然后冒泡排序,取中间三个数的平均值,但是还是存在问题,还是会采集到另外一个通道的电压,有懂的老哥知道是什么原因吗
更多回帖