我也遇到相同的问题查了好久也没查出问题,最后我把read里的一个float型的变量去了,然后函数里的浮点运算放到了应用程序里运算了,这样就可以了。具体为什么我也不知道。
static int tiny210_BH1750_read(struct file *filp, char *buf, size_t count, loff_t *f_pos)
{
U16 BH1750_val;
U16 i;
// float temp;
BH1750_val = bh1750_read();
// temp = BH1750_val;
// temp = temp/1.2;
// i=copy_to_user(buf, &temp, sizeof(temp));
i=copy_to_user(buf, &BH1750_val, sizeof(BH1750_val));
if(i==0) return 0;
return 0;
}