#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/stat.h> #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> void delay(int times) { int i,j; for(i=0;i<times;i++) for(j=0;j<400;j++); } int main(int argc, char **argv) { int fd; int chanel; int ret; int set; int data; fd = open("/dev/adc2410",O_RDWR,777 );//打开设备 if(fd < 0) { printf("Open ADC Device Faild!\n"); exit(1); } printf("please input the chanel 0-3"); scanf("%d",&chanel) ;//输入哪个通道 while((chanel!=0)&&(chanel!=1)&&(chanel!=2)&&(chanel!=3)) { printf("please input the chanel 0-3\t"); scanf("%d",&chanel) ; if(chanel>3||chanel<0) { printf("the chanel is erro"); } } write(fd,&chanel,1);//把通道数写到设备 delay(10) ; printf("the chanel is %d\n",chanel); while(1) { ret = read(fd, &data, sizeof(data));//读出转换的数据 if(ret != sizeof(data)) { if(errno != EAGAIN) { printf("Read ADC Device Faild!\n"); } } else { printf("Read ADC value is: %0.2f\n",data/1241.2121); } lseek(fd,0,SEEK_SET); } close(fd); return 0; }