问题标签 [libserial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
719 浏览

c++ - Libserial 读取串口

我正在使用libserial库与使用 C++ 的调制解调器进行交互。C++ 代码发送一个 AT 命令:

调制解调器响应响应,要么ERROR要么OK

读取响应的 c++ 代码:

我想处理响应,如果响应是OK,调制解调器发送另一个命令,如果响应是ERROR,调制解调器重新发送第一个命令。

0 投票
2 回答
2712 浏览

c++ - libserial error: cannot set baud rate as 115200

I'm trying to communicate with an USB-uart module using Libserial.

Following is my code for initial part:

When I run it on Ubuntu 12.04 and 13.04 with the same USB module, they all say

Error: Could not set the baud rate.

I did some tests and finally found this error would occur if I set the baud rate as or higher than 115200. It works well on 57600 and 19200.

But I'm wondering is there any possible way for me to set the baud rate as 115200? I downloaded a serial test tool, it can work as the 115200(but I didn't checked the msg content, I just notice the transmit led is flash).

Or is it the hardware limit so I need to buy another module if I want a higher baud rate?

Thanks

===========

UPDATE:

  1. There is no problem with the hardware. I tested it in Windows VS using 115200 and it works well. But it failed on two Ubuntu desktop(12.04 and 13.04).

  2. I print the baudrate out after I set it

    serial_port.SetBaudRate( SerialStreamBuf::BAUD_115200) ;

    int rate = serial_port.BaudRate();

    cout << SerialStreamBuf::BAUD_115200 << endl;

    cout << rate << endl;

the result shows their values are the same, both are 4098.

Then I tried to comment all the .good() part with and after the SetBaudRate part, the program start successfully but the transmit LED doesn't flash. So I think there is really something wrong with the baudrate set so the serial initial failed, although the baudrate it returns is correct.

Now I have no idea what to do next...

in case you need to see all my code

0 投票
1 回答
1113 浏览

g++ - Errors using LibSerial

I have build some code using LibSerial but when i compile it i have this error messages:

I believe that they are linking errors but i cannot understand how i can solve my problem.

0 投票
1 回答
274 浏览

c++ - 尝试包含来自 LibSerial 的 SerialStram.h 时发生错误

我尝试使用 LibSerial 的类通过 COM 端口进行串行通信(使用 ATMega32A)。一旦我包含 SerialStream.h,我就会从文件 SerialPort.h 中收到几条错误消息。

你可以看到我在这里得到的错误。 http://i.stack.imgur.com/s8ZdC.png

由于我没有完全理解 LibSerial 的安装,我认为我使用类的方式错误。我使用编译器 QT Creator,操作系统是 Windows 7。如果需要,请随时询问更多信息。

0 投票
1 回答
138 浏览

c++ - C++ libserial 跳过 0x09

我正在尝试从通过 Mavlink 协议通信的 Pixhawk 飞行控制器通过串行方式读取数据。它发送 17 个字节,前三个字节是 0xFE、0x09,后跟一个计数器,每条消息都会递增。我已经用 GtkTerm 确认了这一点。

但是,当我运行以下代码时,总是会跳过 0x09(第二个字节),因此每条 17 字节消息中只接收到 16 个字节。

有任何想法吗?谢谢,詹姆斯。

0 投票
1 回答
2635 浏览

c++ - 如何在 linux 上编译 libserial?

我的程序需要与串行设备通信。我正在 Ubuntu 14.04 LTS 上开发它。我找到了 libserial,并尝试使用它,但它无法编译。我下载、编译并安装了 v0.6.0rc2。是的,它是一个 rc,但它在 sourceforge 上更受欢迎,而且稳定版本很旧。如果你知道更好的图书馆,请在评论中告诉我。

下面根据文档给出的代码无法编译:

这是我得到的错误:

我已将相关行更改为my_serial_stream.Open( "/dev/ttyS0" , ios::out ) ;并添加了 namespace std。现在我得到这个错误:

0 投票
1 回答
2024 浏览

c++ - 'SerialStream' 没有命名类型

我正在使用 Ubuntu 14.04。我想用于这里libSerial描述的项目。我使用.sudo apt-get install libserial-dev

我写了一个小程序(好吧,它不是一个真正的程序):

但是编译器说:‘SerialStream’ does not name a type

有什么帮助吗?

编辑:在命名空间行之后放置SerialStream ardu问题更奇怪:

0 投票
0 回答
186 浏览

c++ - libserial readsome 返回奇怪的值(不是错误)

我的操作系统:Ubuntu 14.04

IDE:Ecplipse Mars

库:GCC,libserial

我正在使用libserial通过串行总线进行通信。

重点

阅读()

正确读取并填充缓冲区,但其返回值不如读取值的数量。它总是返回“6394433”。

知道这里出了什么问题吗?

0 投票
1 回答
244 浏览

c++ - 无法在 OS X 上编译 LibSerial

我正在做一个使用 Arduino 和串口通信的项目。但我已经将我的笔记本电脑从 Win 切换到 Macbook Pro,我必须找到串行通信的替代方案。因为我使用 c++,经过一些研究,我决定使用 LibSerial。不知怎的,我无法编译它。步骤如下:

在“make”步骤,g++ 打印语句,如:

但是当我查看源代码时,PosixSignalDispatcher::CannotAttachHandler 类定义明确。我无法确定哪个部分出了问题。

提供一些信息:我使用 OS X Yosemite,LibSerial 的版本是 0.6.0rc2

谢谢阅读。

0 投票
0 回答
267 浏览

c++ - 无法从串行设备读取

我正在尝试编写一个库来从串行设备Mipex-02 气体传感器读取数据。不幸的是,我的代码似乎没有正确打开串行连接,我不知道为什么。

完整的源代码在github 上,具体来说,这里是串口的配置:

我认为这里枚举的含义已经很明显了。这些值来自说明手册:

UART 特性:交换率 – 9600 波特,8 位消息,1 个停止位,无奇偶校验

所以一开始我用interceptty来测试它,它工作得非常好。但是当我尝试直接连接到设备时,我什么也看不到。设备上的 RX LED 闪烁如此清晰,程序设法发送了一些东西,但是 - 与拦截不同 - TX LED 从不闪烁。

所以我不知道它是否错误地发送数据,如果它没有发送所有数据,我什至无法嗅探连接,因为它只发生在拦截不在中间时。Interceptty 的命令行是interceptty -s 'ispeed 9600 ospeed 9600 -parenb -cstopb -ixon cs8' -l /dev/ttyUSB0(-s 选项被传递给 stty),这在理论上与代码中设置的选项相同。

提前致谢。