gpt4 book ai didi

linux - IIO(字符)设备输出无输出 - IIO 缓冲区

转载 作者:太空狗 更新时间:2023-10-29 12:41:18 26 4
gpt4 key购买 nike

我正在为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com