- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从 C 代码读取以下文件。
文件:/sys/bus/iio/devices/iio\:device0/in_voltage7_raw
但是我得到的文件指针是-1。
使用 cat 命令,它能够读取文件。
但我正尝试从我的代码中读取相同内容,如下所示:
nos_int32 nos_adc_read_port (ADC_PORT_DB *p_port, nos_int32 *data)
{
char file_name[VALUE_MAX];
int value;
char buffer[BUFFER_LENGTH];
char intBuffer[INT_BUFFER_LENGTH];
int fd;
sprintf(file_name, "/sys/bus/iio/devices/iio\\:device0/in_voltage7_raw");
fd = open(file_name, O_RDONLY);
if (fd == -1) {
return(-1);
}
if (read(fd, buffer, BUFFER_LENGTH) == -1) {
return(-1);
}
close(fd);
memcpy(intBuffer, buffer, BUFFER_LENGTH);
intBuffer[INT_BUFFER_LENGTH-1] = '\0';
value = atoi(intBuffer);
*data = value;
return(0);
}
行后:fd = open(file_name, O_RDONLY);
fd 的值为 -1。如何解决?
最佳答案
大多数命令行 shell 使用一些字符来执行特殊操作,如果您尝试将它们用作它们的实际字符,则需要在它们前面加上反斜杠以对它们进行转义。在这种情况下,您的 shell 需要您在访问该文件名时转义冒号。
在 C 中你没有这个问题,所以你可以在你的代码中输入文件名,例如:
"/sys/bus/iio/devices/iio:device0/in_voltage7_raw"
关于c - 无法从用户空间读取 iio 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47713795/
我正在尝试使用来自 ADC channel 的原始值。在我的应用程序中,我这样做: open("/sys/bus/iio/devices/iio\:device1/in_voltage_1", O_R
我正在为 ADC ADS1243 开发 Linux 驱动程序并使用 IIO 框架。我想添加功能以从 ADC 读取数据并将其存储到 IIO 缓冲区。 我添加了 iio_triggered_buffer_
我在 iio 驱动程序中使用名为 LSM6DSL 的 IMU 传感器。如果我使用以下命令显示原始值,它们就可以正常工作: cat /sys/bus/iio/devices/iio:device0/in
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我正在尝试从 C 代码读取以下文件。 文件:/sys/bus/iio/devices/iio\:device0/in_voltage7_raw 但是我得到的文件指针是-1。 使用 cat 命令,它能够
我正在使用 MPU-9250 Invensense 传感器,它的驱动程序来自 android 内核并与 linux 内核集成。驱动程序对内核和节点进行了一些修改,/dev/iio:\device0,并
我对 Linux 设备驱动程序一窍不通。 我有一个 IIO 驱动程序(用于 OPT3001 环境光传感器),在 I2C 总线上运行,已在内核(3.18 版)中成功编译。修改设备树以匹配驱动程序中存在的
我正在使用来自用户空间的 IIO 驱动程序来读取 ADC (AD7924) 的值。我已经完成了触发采集工作的所有步骤(创建触发器、分配它、启用 ADC channel 、设置缓冲区的大小并启用它)。这
我正在尝试将 LSM330 加速度计/陀螺仪模块连接到 i.MX6 板上。模块连接到I2C总线,设备树文件相关部分如下: &i2c1 { clock-frequency = ; pin
我为 ADC 模块编写了一个驱动程序,它是 IIO 子系统的一部分。它读取连接到特定 channel 的各种硬件外设的电压,这些电压只能从 sysfs 读取。 我的问题是,我的充电驱动程序也想从 AD
我有一个问题,我为上升和下降阈值注册了 IIO 事件。我可以在事件子文件夹中看到 sysfs 文件并可以读取它们,但是当我尝试写入新阈值时,它显示“权限被拒绝”。 以下设置: static const
我正在开发的驱动程序有许多我希望用户能够更改的设置,这些设置并不真正适合 IIO 框架。例如,在我的读取函数中使用 IIO_CHAN_INFO_SAMP_FREQ 枚举会在/sys/bus/iio/d
我第三次在运行 VMWare 的 Windows 10 机器上重新安装 Ubuntu 20.04,同时尝试使用 PlutoSDR gr_iio block 安装 GNU Radio Companion
我是一名优秀的程序员,十分优秀!