TI中文支持网
TI专业的中文技术问题搜集分享网站

ADC122s021通道一转换正常,但为什么通道二数据总是跳动

ADC122s021通道一转换正常,但为什么通道二转换输出数据总是跳动?

通道一发送0x00,通道二发送的是0x08。通道一输出比较稳定,且就实际输入电压,但通道二输出从1-3000随机跳动(通道二输入大概1000多毫伏)

请问怎么解决

user3927583:

通道一发送的是0x00 0x00,

通道二发送0x08,0x00

这样可以吗

Wanda WANG:

回复 user3927583:

可以和大家分享下你找问题的方法,碰到同样情况就可以快速解决。

Thanks.

fan pan:

程序能不能给我看看,新手还不会搞,谢谢,邮箱 916208723@qq.com

user3927583:

回复 fan pan:

邮箱我就不发了,我直接写在下面吧,方便大家看到,使用的是STM32F103

/* adc122c021 read volltage ———————— Select_INv1 = 0x00 IN1 Select INv2 = 0x08 IN2———————*/u16 ReadVol(u16 Select_INv1){ u16 ADC_Value_H = 0; u16 ADC_Value_L = 0; u16 ADC_Value = 0; float Voltage_vf = 0; //电池电压值 u16 Voltage_vu = 0; //电池电压值 u8 i; GPIO_ResetBits(GPIOA , GPIO_Pin_4);

ADC_Value_H = SPI1_Receive_byte(Select_INv1); ADC_Value_L = SPI1_Receive_byte(0x00); GPIO_SetBits(GPIOA , GPIO_Pin_4); ADC_Value = (ADC_Value_H<<8 & 0x0f00) + ADC_Value_L;

Voltage_vf=ADC_Value / 4096.0 * 5000; Voltage_vu = (u16)Voltage_vf;

return Voltage_vu;

}

u16 SPI1_Receive_byte(u16 In_data){ while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE)==RESET); SPI_I2S_SendData(SPI1,In_data); while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE)==RESET); return SPI_I2S_ReceiveData(SPI1);}

haitao jin:

回复 user3927583:

SPI的配置有吗? 大神

user3927583:

回复 haitao jin:

有,留下邮箱

赞(0)
未经允许不得转载:TI中文支持网 » ADC122s021通道一转换正常,但为什么通道二数据总是跳动
分享到: 更多 (0)