监测 ADC ,使用CAT 查看:
c
&adc {
pinctrl-names = "default";
pinctrl-0 = <&adc6>;
pinctrl-1 = <&adc7>;
pinctrl-2 = <&adc8>;
pinctrl-3 = <&adc9>;
pinctrl-4 = <&adc10>;
pinctrl-5 = <&adc11>;
adc-channel = <6 7 8 9 10 11>;
status = "okay";
};
检查对应adc-channel的值
程序中读取
原文链接:https://blog.csdn.net/qq_34430371/article/details/104471673
c
#define SYSFS_ADC_DIR "/sys/bus/iio/devices/iio:device0/in_voltage0_raw
FILE *fd=NULL;
fd=fopen(SYSFS_ADC_DIR,"r");
c
fscanf(fd,"%s",a); //读端口的ADC值
printf("%s",a);
if(strlen(a)==4) //将字符合成数字,然后转换成对应的电压。
{
x=((int)a[0]-48)*1000+((int)a[1]-48)*100+((int)a[2]-48)*10+((int)a[3]-48);
}
else if(strlen(a)==3)
{
x=((int)a[0]-48)*100+((int)a[1]-48)*10+((int)a[2]-48);
}
else if(strlen(a)==2)
{
x=((int)a[0]-48)*10+((int)a[1]-48);
}
else
{
x=((int)a[0]-48);
}
adc=((float)x/4095.0)*1.8;
printf(" adc=%4fV\n",adc);
fclose(fd);
sleep(1);