Linux下C語言編程(2):ADC編程

  筆者今天來講講Linux下ADC的使用,12位ADC,即採樣值從0-4095,電壓值則從0-1.8V

在這裏插入圖片描述

ADC引腳圖

在這裏插入圖片描述

ADC使用

1. ADC初始化

   默認上面有7個ADC引腳,從0-6。操作還是和上文IO口的操作一樣,用打開文件的函數進行操作。
在這裏插入圖片描述

#define   SYSFS_ADC_DIR   "/sys/bus/iio/devices/iio:device0/in_voltage0_raw

FILE  *fd=NULL;
fd=fopen(SYSFS_ADC_DIR,"r");
2. 獲取ADC的值
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);

上一篇:Linux下C語言編程(1):IO編程
下一篇:Linux下C語言編程(3):Uart編程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章