我有一个用C语言编写并在Linux上运行的程序,它每隔大约16毫秒从串口设备获取一次流数据。这是一段对时间要求很高的代码,运行良好。另一段代码也实时地绘制这些数据,但它的及时执行对我来说没有数据采集部分那么重要。也就是说,我不想等到所有的绘图和绘图功能都完成后才再次轮询串口。因此,我在考虑让一个单独的线程来完成应用程序的绘图部分,或者让数据采集部分成为单独的线程。当涉及到低级编程时,我真的几乎没有经验,所以有人能给我指出正确的方向吗?我正在使用的伪代码看起来像这样:
int xyz; // global variable
int main() {
do_some_preliminary_s
我正在尝试将usb转串口驱动程序添加到我的arch linux arm设备中,并且我注意到内核源代码树中已经包含了FTDI驱动程序的源文件,位于:
驱动程序/usb/串口,存在ftdi_sio.c和ftdi_sio.h文件。
当我导航到内核/驱动程序时,到处都找不到ftdi_sio.ko模块。
如何构建ftdi内核模块并将其包含到引导中,以便在我的arch linux arm上具有usb转串口功能?
如何使用Posix/C函数检查Linux中是否已经打开了串口?我想检查串口的状态,以检查串口是否打开。
我想知道哪些方法适用于:
检查文件描述符以查看串口是否打开
检查串口文件名以查看串口是否打开,在下面的示例中是“/dev/ttyUSB0 0”
--
// This code is for example purposes only
int open_port()
{
int fd;
fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd < 0)
{
p
为了创建一对串行端口,我跟踪了。效果很好。
现在,我正在开发一个Qt应用程序(使用)通过串口发送数据,我真正想要的是这样一个虚拟串口链接。但是QSerialPortInfo::availablePorts()似乎找不到/dev/ it /.港口。
为了在linux上建立这样的串口链接,我应该尝试哪种方法?
这是我的C程序(在Linux中)的相关部分:
while (input != ' '){
write(serial_port, msg, sizeof(msg));
//1. here I would like to wait at least 100 us with the Tx line high
//2. followed by at least 8us with the Tx line low
//3. and then repeat the message
input = mygetch();
}
如您所见,每次通过串口发送msg后,我希望将Tx行设置为10
我有一个通过USB连接到我的Linux机器上的开发板。为了调试起见,我想监视串口。我的问题是,我不知道如何理解我应该监视哪个串口。
在终端中运行lsusb时,我看到
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0461:4e1d Primax Electronics, Ltd
Bus 001 Device 004: ID
在类似于Unix的操作系统中,我们可以通过诸如/dev/ttyUSB0之类的文件访问串口。根据这个,可以使用文件名(如COM1: )来访问串口。对于这样的文件名,java的替代方案是什么?我不想使用Serial Communication自由主义者。
编辑
我想让我的代码看起来像这样。
String INPUT_PORT_FILE_NAME = linux?"/dev/ttyUSB0":"<File name of comport>"
File in = new File(INPUT_PORT_FILE_NAME)
我想要的是替代设备文件的寡妇。