c++ linux 下串口收发

本文介绍了如何在Linux环境下利用C++实现串口通信,通过两个串口进行数据的接收与发送。首先讲解了串口基础知识,包括串口的区别、电平标准以及单片机与电脑的连接方式。接着演示了如何在Linux上安装串口助手cutecom,并通过串口调试。最后分享了从GitHub获取并修改代码,实现了跨串口的数据收发功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

 要在linux下写一个c++串口收发的程序,目的是通过某个串口接收数据,再通过另一个串口发出去。

制作串口和下载串口助手

  1. 首先找四个串口和两条杜邦线
    在这里插入图片描述
    接线方式为 GND-GND,TX-RX,RX-TX,因为是接地通讯,所以不需要高电平(这是为了避免与目标设备上的供电冲突。)。如果只有一个串口,那么将TX,RX短接起来就行。串口知识学习区分:串口,COM口,UART,USART
    这里我简单概括一下串口知识:
    串口:1B的8个位在一条线上逐个传
    并口:1B的8个位在8条线同时传,但高速通讯各个连接线易互相干扰,所以高速下难以同步,成本也因为线多所以比串口高。
    串口包括:USB | I2C | SPI | RJ-45 | UART | USART 等
    串口的电平标准:TTL,232,485

单片机与电脑的连接

  既然单片机有串口(UART/USART),电脑也有串口(COM口),那么两者就可以通过串口进行通信。

 如果电脑有实体COM口,由于COM口使用的RS-232电平跟单片机的UART/USART使用的TTL电平不一样,这时就需要使用MAX232之类的电平转换芯片,将TTL电平转换成RS-232电平,连接示意如下:

旧电脑COM口(RJ-232) <—> MAX232 <—> (TTL)单片机UART/USART

  如果电脑没有COM口,就要通过CH340之类的USB转TTL串口芯片,来实现用USB模拟COM口,这样电脑的USB口就变成了一个TTL串口,可以跟单片机的UART/USART通信,连接示意如下:

新电脑USB口 <—> CH340 <—> (TTL)单片机UART/USART

在这里插入图片描述
2. 下载linux下的串口助手cutecom

sudo apt-get install cutecom
cutecom

setting
在这里插入图片描述
查看串口

ls /dev/tty*
chmod 777 /dev/ttyUSB5

对于不知道是哪一个串口的话可以通过将串口的RX,TX短接,然后随便发送数据,如果能收到自己的数据,那么就能确定是这个USB设备号了。

  1. 寻找代码

 太菜了,所以到Github找轮子改造一下。参考代码地址在这

修改代码

在这里插入图片描述
没修改代码是对同一个串口之间收发的。
修改代码后,我通过win下的xcom串口助手,对com30发送“com30”到linux下的/dev/ttyUSB5,再通过/dev/ttyUSB6,发送返回的数据到com20。
在这里插入图片描述
在这里插入图片描述
先简单的实现,以后再优化和理解。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值