linux下 UART串口相关

这篇具有很好参考价值的文章主要介绍了linux下 UART串口相关。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

RS232的串口设备在linux 上会被识别为 /dev/ttyS* 或者 ttymxc* 、 ttyUSB*

查看USB设备详细信息:udevadm info /dev/ttyUSB*
一、使用命令操作串口

操作串口我们一般通过以下指令:

1、查看串口波特率等信息:

stty -F /dev/ttyS0 -a  #ttyS0为要查看的串口 

2、设置串口参数:

stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs8 

该命令将串口1(/dev/ttyS0)设置成115200波特率,8位数据模式。
一般情况下设置这两个参数就可以了,如果显示数据乱码,可能还需要设置其它参数,使用man查看stty其它设置选项。

1、显示某个串口参数信息:stty -F /dev/ttySTM6  -a
        
2、设置某个串口参数信息:
 
    2.1      7位数据位,无校验,1位停止位,无回显
 
       stty -F /dev/ttySTM6 speed 115200 cs7 -parenb -cstopb  -echo
        
    2.2     串口ttySTM6 波特率为115200,8位数据位,1位停止位,偶数校验位
  
       stty -F /dev/ttyS0 speed 115200 cs8 -cstopb parenb -parodd
 
3、串口发送数据:echo "1234456"  >  /dev/ttySTM6
 
4、显示串口接收数据:cat /dev/ttySTM6 &(后台)
 
5、stty命令功能参数
 
   5.1 校验位
    parenb:使终端进行奇偶校验,-parenb则是禁止校验;
    -parodd 偶数校验
    parodd 奇数校验  
 
   5.2 数据位
    cs5、cs6、cs7和cs8分别将字符大小设为5、6、7和8比特;
 
   5.3 波特率
    speed 波特率:设置波特率 
 
   5.4 停止位
    cstopb和-cstopb分别设置两个或一个停止位;

3、查看串口接收数据:

cat /dev/ttyS0 

4、16进制查看串口接收数据:

hexdump -C /dev/ttyO1

5、向串口发数据:

echo "111111" > /dev/ttyS0
二、使用函数操作串口

如 cfsetispeed 、tcgetattr 等函数;自测代码如下:https://gitcode.net/weixin_44618297/linux_uart

三、串口测试

可以使用virtualbox 虚拟机 和 虚拟串口工具VPSD ( Configure Virtual Serial Port Driver) 进行测试
参考:https://blog.csdn.net/zxw1473474655/article/details/126102955

1、首先用VPSD虚拟出两个串口

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维
linux下 UART串口相关,通信协议,Linux,linux,单片机,运维

2、虚拟机也配置一下串口

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维
路径的串口名字要和windows上的一致,配置好后打开虚拟机

3、查看电脑是否自带串口,使用以下命令:
sudo cat /proc/tty/driver/serial

带有tx、rx的选项为实际串口,0对应ttyS0,一般情况下ttyS0对应window下COM1,依次类推。根据实际串口,用ttyS0或ttyS1进行测试。

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维
linux下 UART串口相关,通信协议,Linux,linux,单片机,运维

4、使用windows的串口工具和linux 下的串口通信

linux下ttyS0的波特率默认为9600,对应windows上的 COM1

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维

使用VPSD虚拟出来的串口com1 和com2 是连通的,即给com1发送数据,com2会收到

打开linux上的ttyS0串口,等待数据

cat /dev/ttyS0

win上发送数据

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维

linux下串口接收到数据

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维

配置一下linux 下的ttyS0

#串口ttySTM6 波特率为9600,8位数据位,1位停止位,无校验位
stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb

使用ttyS0发送数据

echo "888888"  > /dev/ttyS0

windows下的串口收到数据

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维

也可以用hexdump显示,具体hexdump的用法,可以自行百度

linux下 UART串口相关,通信协议,Linux,linux,单片机,运维文章来源地址https://www.toymoban.com/news/detail-604463.html

到了这里,关于linux下 UART串口相关的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式Linux裸机开发(七)UART串口、IIC、SPI通信

    大概学完这三种通信后,之后就先去学系统移植,其他的先暂时放下 串口全称叫做串行接口,通常也叫做 COM 接口。 UART:(Universal Asynchronous Receiver/Trasmitter)通用异步串行收发器。 USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行收发器,相比 UART多了

    2024年02月07日
    浏览(74)
  • UART串口通信协议

    串行通信分为两种方式: 同步串行通信 和 异步串行通信 。 同步串行通信需要通信双方在同一时钟的控制下,同步传输数据。 异步串行通信是指通信双方使用各自的时钟控制数据的发送和接收过程。 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)是一种 全双

    2024年02月03日
    浏览(36)
  • 【笔记】6位数码管显示定时器定时的时分秒,通过按键控制时间,自定义串口通信协议,根据单片机接收到的指令控制数码管显示

              目的:利用PROTUES仿真软件、串口调试助手、虚拟串口,搭建单片机与PC通信仿真平台,熟悉单片机串口的配置及与PC机的通信方法;尝试制定通信协议(含开始码、指令、数据、停止码),单片机根据通信协议解析接收到的内容,并根据接收的指令执行相应的操

    2024年02月05日
    浏览(52)
  • 使用标准库和HAL库的STM32单片机进行串口通信/解决因例程为HAL库的传感器,而其他模块都是标准库,需要将数据用串口传送给标准库的单片机的相关问题

    (本文使用STM32F103C8T6,在CubeMX里演示用的是RBT6,但实际上引脚是一样的)         本文 着重解决一个大工程中,某些传感器的例程是HAL库的,而其他模块(或算法)都是标准库,导致难以移植的问题。 本文的解决方法是:使用一片单片机用HAL库(CubeMX)配置例程,然后

    2024年02月06日
    浏览(59)
  • 串口通信协议--UART、RS-232、RS-485、RS-422

    近期学习了单片机及数电相关知识,故决定系统地学习一些通信协议。手边书本仅介绍了串口低速接口的相关协议。 串行通信 是指通过使用一条数据线(需要地线或控制线),将数据一位一位地一次传输,每一位数据占据一个固定的时间长度。 特点 :抗干扰,节省数据线,

    2024年02月05日
    浏览(58)
  • 【51单片机】串口通信&&使用串口通信控制LED灯

    🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Promise】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🍔串口通信 😎代码   🍔串口初始化 ⭐分析  🏳️‍🌈确定T1的工作方式 🎈TMOD=0X20;  🏳️‍🌈确定T1的初值 🎈

    2024年02月17日
    浏览(44)
  • 单片机UART一对多:同时读取多个传感器基于modbus协议

    很多传感器现在都做成了串口模块,如激光测距传感器TOF050,在开发时使用串口功能模块不仅大大加快了我们的开发进度,还能降低功能模块直接的耦合度,专业是功能交给专业的模块做,也能保证质量。 图:TOF050激光测距模块 以TOF050模块为例,当我们同时需要接4个激光测

    2024年02月08日
    浏览(44)
  • 51单片机-串口通信

    目录 1.什么是通信 1.1.通信的概念 1.2.传送方式 1.3.同步方式 1.4.传送方向 1.5.校验方式 2.单片机串口介绍 2.1.硬件电路 2.2.电平标准 2.3.常见接口 2.4.内部结构 2.5.相关寄存器 2.6.工作模式(模式1) 2.7.如何配置串口中断 3.实际应用 3.1.单片机向电脑发送数据 3.2.电脑向单片机发送

    2024年02月01日
    浏览(46)
  • 51单片机串口通信

    串口通信(serial communication)是指外设和计算机间通过数据信号线、地线等按位进行传输数据的一种通信方式,属于串行通信方式。 接口标准:常用RS-232和RS-485 RS-232C有一种9针的非标准连接器口,简称DB9。串口通信使用的大多都是DB9接口。在串口通信中,通常我们只使用2、

    2024年02月05日
    浏览(45)
  • 单片机串口通信程序

    本文总结了两种比较简单的关于串口发送接收的程序,以下是步骤: 定义数据: 首先要串口初始化:(以9600波特率为例) 串口中断:  在定时器0扫描里加入,或者主函数while(1)里加入: (其中++URX_tt=(1000/波特率),数要接近,否则会有小小干扰。) 接下来关于串口通信

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包