为了创建一对串行端口,我跟踪了。效果很好。
现在,我正在开发一个Qt应用程序(使用)通过串口发送数据,我真正想要的是这样一个虚拟串口链接。但是QSerialPortInfo::availablePorts()似乎找不到/dev/ it /.港口。
为了在linux上建立这样的串口链接,我应该尝试哪种方法?
我的工作是机器人,它必须控制使用无线串行通信。机器人在微控制器上运行(通过燃烧一个.hex文件)。我想用我的Linux () PC来控制它。我是新来的串口编程。我能够发送数据,但我不能读取数据。
在微控制器上运行的几段代码:
函数发送数据:
void TxData(unsigned char tx_data)
{
SBUF = tx_data; // Transmit data that is passed to this function
while(TI == 0) // Wait while data is being transmitted
;
}
这是我的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
过去,我曾在Linux和Windows环境中使用c++和python与串口通信。在Linux中,我还使用picocom、minicom和cutecom等程序进行串行通信,但现在我想使用简单的Linux命令读写串口,这不需要安装外部程序。我会在raspberry pi中使用这种方法与我的Arduino板进行通信。在下面的示例中,我使用stty设置串口选项,并使用echo和cat命令从串口发送和读取数据,但在最后,我没有看到任何输出,我在这个站点上阅读了与此相关的其他文章,但似乎没有什么对我有用。我可以使用cutecom与Arduino进行通信,但是使用下面的命令,我看不到任何响应。
Linux
我们有一个Linux嵌入式项目,我们关心的是性能。
位于:的串口异步输入示例几乎就是我们想要的。
然而,主管工程师反对循环休眠调用造成的CPU性能损失。他希望程序等待一个信号来执行响应处理代码。
我尝试将该代码从main()移到signal函数内部,即:
void signal_handler_IO (int status)
{
// I moved my code here
}
结果不起作用,在该函数中进行的串行端口写入操作很快就会失败,程序完全没有响应。
为什么会这样呢?
有没有一个信号驱动的I/O只针对一个串行端口的好的在线示例?我一直在钻研Kerrisk的“Linux Prio
我想抓取串口的输出。它上面有一条以UTF-8格式发送的消息。
现在,我需要将通过串行端口接收到的这条消息发送给使用CURL.exe的HTTP-API
我首先尝试的是使用"type com5:“打开cmd中的端口。它工作得很好,端口被打开并受到监控。我在cmd中看到了这条消息,当我使用"type com5:>> output.txt“时,消息就被写到了文件中。
在那之后,我尝试将"type:“-Command放在cmd中的for循环中,以便在收到CURL消息时将其发送到API。
我使用的代码如下:
cd C:\comcon\
for /F %%i in (