- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在为 ADC ADS1243 开发 Linux 驱动程序并使用 IIO 框架。我想添加功能以从 ADC 读取数据并将其存储到 IIO 缓冲区。
我添加了 iio_triggered_buffer_setup() 来探测驱动程序的功能。
ret = iio_triggered_buffer_setup(indio_dev, NULL, &ads1243_trigger_handler, NULL);
我正在使用 sysfs 触发器并且成功调用了 ads1243_trigger_handler
。
static irqreturn_t ads1243_trigger_handler(int irq, void *p)
{
struct iio_poll_func *pf = p;
struct iio_dev *indio_dev = pf->indio_dev;
struct ads1243_state *st = iio_priv(indio_dev);
u32 val[8];
int ret;
val[0] = 0x01;
val[1] = 0x02;
val[2] = 0x03;
val[3] = 0x04;
ret = iio_push_to_buffers_with_timestamp(indio_dev, val,
iio_get_time_ns());
/* iio_push_to_buffers(indio_dev, val); */
iio_trigger_notify_done(indio_dev->trig);
return IRQ_HANDLED;
在处理程序中,我只使用一些推送到 iio 缓冲区的测试数据。
然后我设置触发器
echo 0 > iio_sysfs_trigger/add_trigger
cat /sys/bus/iio/devices/trigger0/name > /sys/bus/iio/devices/iio:device1/trigger/current_trigger
启用一些扫描元素,为iio设备设置和启用缓冲区
echo 1 > scan_elements/in_voltage0-voltage1_en
echo 1 > scan_elements/in_voltage2-voltage3_en
echo 64 > buffer/length
echo 1 > buffer/enable
扣动扳机
echo 1 > /sys/bus/iio/devices/trigger0/trigger_now
然后尝试读取设备(缓冲区)
cat /dev/iio\:device1
但是我没有输出。我错过了什么重要的东西吗?
感谢回复!
最佳答案
代码正确且有效。我很愚蠢 - 我没有意识到 cat 命令不会打印 invisible cacharacters!
例如使用 hexdump..
关于linux - IIO(字符)设备输出无输出 - IIO 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43134050/
我正在尝试使用来自 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
我是一名优秀的程序员,十分优秀!