if(AD7190_RDY_STATE()==0)
{
uint32_t data;
float voltage;
data=AD7190_Get_ADC_Data();
voltage=(float)data/256*2000/16777215; //0-10V 0-2m mm 0xFFFFFF; 单位转换成cm
if(data>=0x139F3C04 && data<=0xF1CCC904)
{
printf("0x%08X>>%d: %4.0fmm\r\n",data,(data&0x0F)-4,voltage);
}
计算结果在窗口中查看都是对的,但是输出的时候遇到问题,printf("0x%08X>>%d: %4.0fmm\r\n",data,(data&0x0F)-4,voltage);这个输出的是
0x3622C404>>0: -26815616336003992000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000mm。
最终修改成printf("0x%08X>>%d: %dmm\r\n",data,(data&0x0F)-4,(uint16_t)voltage);问题解决。