ds18b20温度传感器读值不稳定???

mian_bao 2009-05-07 06:33:11
问题见红色注释

驱动中的函数:(驱动肯定没问题的,是教程上自带的)
static ssize_t s3c2440_18b20_read(struct file *filp, char *buf, size_t len, loff_t *off)

{
DS18B20PRO();
*buf=sdata; //温度值
//printk("%d\n",xiaoshu);
//printk("%d\n",sdata);
return 1;
}
测试函数:
{fd = open("/dev/18b20", 0);
if(fd < 0)
{
perror("Can't open /dev/18b20 \n");
exit(1);
}
printf("open ds18b20 success \n");
t= new QTimer(this);
connect(t, SIGNAL(timeout()),this , SLOT(readTem()));
t->start(1);// 问题:当延时增大时,温度传感器就不灵了,用烟头烤,读出的温度都不变。只有延时为1时才有变化????
}

void Tem::readTem()
{

char tmp;
read(fd, &tmp , sizeof(char));

printf("tmp is dd %d\n",tmp);//问题出来了,这里的tmp偶尔会很大???

}
...全文
792 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyzhang365 2009-05-26
  • 打赏
  • 举报
回复
Have you solved your problem?
zyzhang365 2009-05-07
  • 打赏
  • 举报
回复
为什么只读一个BYTE,貌似最低精度是9-bit。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧