请教各位大牛,我写了一个程序,用于读取adc,并把数据写入到一个文件,但是有很多问题。相关程序如下:
void TMainForm::savedata()
{
int fd=::open("/home/plg/save_ADC.text",O_RDWR|O_CREAT|O_APPEND);
if(fd<0)
{
perror("open file !");
exit(1);
}
int fd_adc=::open("/dev/adc",0);
if(fd_adc<0)
{
perror("open ADC device!");
exit(1);
}
char newdata[30];
int len=::read(fd_adc,newdata,sizeof newdata);
if(len<=0)
{
perror("read ADC device!");
exit(1);
}
QString data(newdata);
::write(fd,data.latin1(),sizeof data.length());
::close(fd_adc);
::close(fd);
}
问题:1,但改变newdata数组大小时,超过40,保存的数据看到的就是乱码;
2,不是乱码时看到的数据如下:
85
@96
@104
111
119
129
133
-1
@10231023-1
@ 77
@
好像是读的数据是两位(及其)数时,换行后再输出一个@;读的数据是三位数时,显示貌似很正常;读的数据是四位数时,就不换行了。
注:因为我要现实adc波形,所以使用Qtopia编程。
请大牛指教,我都弄了好几天了。先谢过啦!