我有一个IMU,它有一个UART接口。制造商提供了一个基于Windows的程序,从IMU获取所有数据并实时显示。(设备通过USB连接到PC)。我需要编写自己的软件来完成这项工作,以便将其集成到我的项目中。
IMU的数据表/手册提供了所有有关必须写入和读取哪些寄存器(发出命令和读取响应)以获取IMU数据的详细信息。我的问题是,如何在Linux下用C实现这一点?
我发现的最接近的信息是this one,但是在编译它时,我似乎需要Linux内核头,因为该程序使用#include <linux/module.h>
,所以我不确定我是否在正确的轨道上。
最佳答案
您不需要任何内核头就可以与连接到该串行端口的任何设备通过串行端口进行通信。
只需使用/dev/ttyUSB0
调用打开一个文件open()
就可以获得到设备的“连接”(实际名称可以通过查看dmesg
中的相关设备消息或在将设备插入/dev
端口时查看usb
下显示的设备节点来找到)。
然后需要设置波特率和字格式(位数、奇偶校验和停止位数)。要从用户空间过程中实现这一点,您可以使用一组ioctl
s。有关详细信息,请阅读man ioctl
和man ioctl_list
关于c - 通过UART读取和写入IMU的寄存器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40033420/