天嵌 ARM开发社区

 找回密码
 注册
查看: 1702|回复: 1

copy_to_user(buffer, (char *)&adc_data, sizeof(adc_data))驱动这有问题?

[复制链接]
haffman 发表于 2013-8-8 23:53:03 | 显示全部楼层 |阅读模式
copy_to_user(buffer, (char *)&adc_data, sizeof(adc_data))
这是最近看AD驱动例程中static ssize_t tq2440_adc_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)函数有这么一句,不过这句可以不要,因为后面已有
sscanf(buffer, "%d", &value);
printf("ADC Value: %d\n", value);
这么两句。
但我现在不想用后面这两句实现--将AD值拷贝到用户空间。
就直接用copy_to_user(buffer, (char *)&adc_data, sizeof(adc_data))来实现,这样不用转换了,其中adc_data为int型。。
如下
              value = adc_data;
              int r=copy_to_user(buffer,(char *)&adc_data,sizeof(adc_data));//
             ADC_enable = 0;
               up(&ADC_LOCK1);
               return sizeof(adc_data);
应用程序相关改动如下:
char buffer[30];
                int len ;
                int value;
                len = read(fd, buffer,4);
                sscanf(buffer, "%d", &value);
                printf("ADC Value: %d\n", value);

不过这样编译出来在板子上运行,
# adc_test
ADC Value: 0
ADC Value一直为0,无论怎调电位器。。。不知问题出在哪位里?整形--字符之间的转换应该没问题啊



TQ-ZQL 发表于 2013-8-9 18:36:43 | 显示全部楼层
copy之后在驱动 将值打出来看有没有 问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-5-6 17:53 , Processed in 2.042973 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表