c++ linux 下串口收发
c++ linux 下串口收发背景制作串口和下载串口助手修改代码背景 要在linux下写一个c++串口收发的程序,目的是通过某个串口接收数据,再通过另一个串口发出去。制作串口和下载串口助手首先找四个串口和两条杜邦线接线方式为 GND-GND,TX-RX,RX-TX,因为是接地通讯,所以不需要高电平。如果只有一个串口,那么将TX,RX短接起来就行下载linux下的串口助手cutecomsudo ap
·
c++ linux 下串口收发
背景
要在linux下写一个c++串口收发的程序,目的是通过某个串口接收数据,再通过另一个串口发出去。
制作串口和下载串口助手
- 首先找四个串口和两条杜邦线
接线方式为 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设备号了。
- 寻找代码
太菜了,所以到Github找轮子改造一下。参考代码地址在这
修改代码
没修改代码是对同一个串口之间收发的。
修改代码后,我通过win下的xcom串口助手,对com30发送“com30”到linux下的/dev/ttyUSB5,再通过/dev/ttyUSB6,发送返回的数据到com20。
先简单的实现,以后再优化和理解。
更多推荐
所有评论(0)