
{
setCaption( "ADC-Testing" )
m_label = new QLCDNumber(this)
m_label->setGeometry(10,10, 100, 50)
m_label->setSegmentStyle(QLCDNumber::Flat)
startTimer(500)
} //这几行应该是其他的内容,与adc无关,目测是gui的部分
void TMainForm::timerEvent ( QTimerEvent * )
{
int fd = ::open("/dev/adc", 0) //打开/dev/adc设备文件
if (fd <0) {
return
}//出错则结束
char buffer[30] = "" //申请一个buffer
int len = ::read(fd, buffer, sizeof buffer -1) //从adc设备中读取长度为sizeof(buffer)-1的内容到buffer中
if (len >0) {//如果读到了内容
buffer[len] = '\0' //在读到的内容末尾插入'\0',即字符串结束符
int value = -1
sscanf(buffer, "%d", &value) //将buffer中的内容存到value中
m_label->display(value) //显示value的值
}
::close(fd) //关闭设备文件
整个test就是很简单的打开设备文件然后从设备文件中读值并显示
一般英语的意思我想你也明白,"size_t"这个变量没有定义而使用了。定义这个变量问题可以解决。但是至于这个变量该怎么定义就只有你知道了。可以把源码发过来看看。我猜你是否是使用的库函数的方式编程。一般库函数为了更清楚的表达某些类型会把int型 typedef成size_t. 在linux下内核源码中这样的定义更是屡见不鲜。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)