首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 串口基本用法

查看Linux本机串口: 1、查看串口是否可用 如果需要查看这个串口设备输出: cat ttyUSB0 如果需要对这个设备输入: echo yaoxu > ttyUSB0 常用调试工具有: minicom...cutecom Linux系统可视化串口应用软件,使用上与Windows系统串口调试工具。 picocom 效果上类似 minicom 精简版,设置比较简单,还可以有背景颜色。.../dev下应该有一个USB串口:/dev/ttyUSB0. 当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用串行设备。...PC上串口一般是ttyS,板子上Linux串口一般叫做ttySAC; 串口权限问题 临时调试解决 在使用串口进行通信时,经常需要使用指令来赋予用户读写权限 $ sudo chmod 777 /dev.../etc/passwd 是一个文本文件,其中包含了登录 Linux 系统所必需每个用户信息。

10K41

【收藏转发】串口驱动到Linux驱动,嵌入式入门必备!

理论到实践。以便读者能对OS原理有更深入了解和更具体掌握。 在具体分析之前。我们必须对串口。驱动。和Linux操作系统有一定了解。...串行通讯距离可以几米到几千米;根据信息传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。 串口通信两种最基本方式:同步串行通信方式和异步串行通信方式。...下面为了数据结构角度来分析调用链。介绍linux内核中针对于这一个串口硬件主要数据结构。对于具体字段我们用到时候再解释。 uart_driver。 就是uart驱动程序结构。...用户write系统调用传下来数据就会写入这个UTXH0寄存器。发送完事之后处理器会产生一个内部中断。...下面是这个uart驱动总图。结合数据结构调用链。Linux内核完成了驱动模型和特定硬件分离: ? 串口驱动数据结构总图: ?

3.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Python】简单串口收发数据

    实现效果: Python端运行时候打开COM3,然后准备键盘获取数据,并发送,同时接收串口调试助手COM1发送过来数据 Python端: ? 串口调试助手: ?...串口调试助手使用COM1,能显示Python端发过来数据,当点击发送时候,Python端暂时不会显示,因为Python端读取键盘那个方法是堵塞,当Python端发送时候才同时把数据显示出来(如果想一发送就显示...1、安装pyserial(类似于java库,用于调串口函数) 2、安装VSPD(因为没有硬件,用这个虚拟串口) 1、由于我用是win7 64位,无法安装pyserial-2.7.win32.exe..." #串口 baudRate=9600 #波特率 ser=serial.Serial(serialPort,baudRate,timeout=0.5) print "参数设置:串口=...%s ,波特率=%d"%(serialPort,baudRate) #收发数据 while 1: str = raw_input("请输入要发送数据(非中文)并同时接收数据: ")

    5.2K30

    Java串口编程:串口数据发送与监听读取「建议收藏」

    串口编程API包# 目前比较常见针对Java串口包有3个来源:一是1998年SUN发布串口通信API:comm2.0.jar(Windows环境下)和comm3.0.jar(Linux/Solaris...因为串口COM11和COM21是通过软件虚拟、相互连接一对串口,所以COM11发送数据COM21会接收到,反之亦然。   ...如果设备上只有一个串口,要实现串口数据收发,可以将串口引脚2和引脚3使用铜线相连接,这样串口发送数据就会通过本串口接收到。...功能,向串口COM11写入数据会发送到与其相连另一个串口COM21,并被COM21所接收,串口接收数据方式将在下文讲到,以下是Com11Writer源代码: Com11Writer.java...## 串口COM11发送数据最终将到达与其连通串口COM21,如果COM21处于可用状态,则到达数据将被缓存,等待程序读取。

    6.2K20

    Linux top命令数据哪儿来?

    top命令是linux下非常重要命令,帮助我们快速查看系统状态 那么top是如何获取系统各项状态指标的呢?...(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备 strace可以跟踪到一个进程产生系统调用 上面的命令中,把top执行情况保存到了文件中...并且在读取文件中,涉及 /proc 目录下文件非常多 /proc 本身是一个虚拟文件系统,并非存在于硬盘之中,而是由Linux内核凭空创建,保存在内存中 /proc 目录结构为 /proc.../proc 下文件是系统相关信息 /proc/N N是以进程号为名字目录,其中是此进程相关信息文件 如/proc/2000,2000为PID,Linux 内核将与之关联信息打印到此目录相关文件中...,如: 该任务在用户态运行时间、该任务在核心态运行时间、当前驻留物理地址空间大小、虚拟地址空间大小、父进程ID、线程组号…… …… /proc 中包含了丰富系统信息,是各种监控命令和工具重要数据来源

    3.1K60

    Linux开发】串口接收不定长数据,接收中断+超时判断方案

    前言 Linux 开发时,经常会遇到串口通信来完成两个设备之间交互。...串口通信依赖于一种叫做串行通信协议规则,它在数据传输过程中控制数据流动,包括数据设置、波特率调整、校验位的确定以及停止位选择等。...然而,在串口通信中,我们通常不知道对方会发送多少数据,也不清楚数据何时发送完毕。简而言之,问题在于:我们如何确保接收到一帧完整数据?判断一个完整帧就需要知道,帧什么时候开始,又在什么时候结束。...判断完整帧方式 串口传输数据长度不一,如果接收不完整,将直接影响到后续业务处理。...linux 开发和嵌入式开发中是最频繁使用功能之一,接收者角度来看,是不知道发送方数据量是有多大

    1.1K10

    使用picocm来进行Linux串口调试

    主要原因就是minicom没有彩色文字,看着难受,特别是调试ARM Linux时候233 安装 因为正常是在Debian系列Linux发行版上面使用(deepin或者ubuntu这些,解决方案比较完善...然后使得这个设备能被picocom工具访问使用 sudo chmod 777 /dev/ttyUSBx 请自行将ttyUSBx替换为当前使用串口设备 连接串口设备 下面是一般连接一个串口设备说使用命令...参数讲解 -b: 设置波特率参数 /dev/ttyUSBx:串口设备,请替换为当前使用串口设备 打开帮助提示页面 ?...+h打开,所以其他命令也是同理 发送接收文件 如果直接使用上面的连接串口设备命令直接去进行文件发送的话,你就会发现Ctrl a+s进行发送时候根本没办法确定使用哪种协议进行,很让人摸不着头脑..."rb -vv" -b 115200 /dev/ttyUSBx 同样,使用当前串口设备文件 退出picocom 直接就是按动Ctrl a+q就可以 尾声 picocom相较于minicom

    9.9K60

    LINUX串口非标准波特率更改

    LINUX库提供波特率是标准波特率,应用时有时会用到非标准波特率。以下试验使用xilinxzynq7020,linux内核是4.14版本。以增加波特率100k为例。...先说为什么增加波特率使用0020001而不在B4000000后面递增使用0010020,这是因为这个低位20已经被占用了,如下图3,所以找了没被占用位置,0020000中2这个bit位置在c_cflag...第一处0030017也是这个原因,就是将波特率即可使用这些宏定义包含进去。...图3 第二步,更改文件/drivers/tty/tty_baudrate.c,这个文件就是获取波特率具体数值文件,应用端数据传入到内核,内核解析并获得100k波特率这个数值就是在这个文件, 先在文件头部波特率列表中增加所需数值...|= 0020001; (其余配置省略) tcsetattr(fdcom, TCSANOW, &termios_new); 这样串口波特率即更改为100k,如需其他波特率在头文件处增加,应用端赋值对应数值即可

    3.9K30

    来看看加入环形队列串口发送数据

    一,为什么要使用环形队列来发送数据?是为了解决什么问题呢! ? 这节说了怎么用中断发送数据,但是大家是否想过,这种中断发送有个bug,看一下下面的 ? ?...现在想法是需要有个缓存,我不停往缓存里面写数据,串口发送中断不停从缓存里面取出来,然后发出去! 直接利用环形队列是很好选择....我把发送数据写入环形队列,然后打开串口发送中断 串口发送中断里面判断环形队列里面的数据个数是不是大于0,如果是就读出来发出去! 二,定义一些变量 ? ? ? ?...四,串口发送中断里面就是这样 ? 五,修改一下环形队列一个函数,填充完数据就打开中断 ? 六,现在测试 ? ? 现在数据不会出现丢失! 注意:即使是使用了环形队列也不要在主循环里面 ?...只要波特率定好了,中断发送每一位数据时间是一定,发送数据就一定需要时间! 现在是直接造成死机, ? 其实造成死机原因是因为环形队列里面使用printf, ?

    1.9K20

    关于串口数据发送和接收(调试必备)

    前言 对于串口数据发送和接收,大多是都是利用串口中断来进行,但是这样对于编程方面有一定要求,并且程序也不太好写,比如说,如果让你随意接收一段数据,然后利用串口将它发送出来,第一个需要考虑问题就是接收数据长度...串口接收和发送机理 首先我们要知道串口工作机理,串口是通过数据发送,这里我就不多去牵扯那些基础知识,假定我们使用的如下设置,波特率为9600,8位数据。其它什么奇偶校验都不用。...————————————-续更2020/2/18 串口数据接收程序设计 在学习串口数据接收之前,首先我们总结一下之前printf发送程序。...1、需要包含STDIO.h库文件 2、需要配置串口波特率等基本设置,并且只是输出的话就将ES置为0 3、在使用printf之前一定要将TI置为1 好了,现在来学习串口数据接收,串口数据接收一定会需要串口中断...,因为串口数据发送可以根据意愿去调用,可以不用中断,但是串口数据接收就非常需要串口中断了,因为你不知道什么时候数据发送过来,如果用查询法的话,每次都要去轮训,并且在没有操作系统时候,轮训带来时间延迟是接收数据所不能接受

    4.9K20

    优秀 Modbus 站(机、服务端)仿真器、串口调试工具

    优秀 Modbus 站(机、服务端)仿真器、串口调试工具官网下载地址:http://www.redisant.cn/mse主要功能支持多种Modbus协议,包括:- Modbus RTU- Modbus...,监控数据变化趋势支持同时创建多个连接网络和大量站设备通过多个标签页进行管理,快速在从站设备之间进行切换通过表格形式管理寄存器,支持添加变量名和注释,支持切换背景与前景颜色导出/导出站设备寄存器数据到...) 获取通讯事件计数器(仅限串口)- 15 (0x0F) 写入多个线圈- 16 (0x10) 写入多个寄存器- 17 (0x11) 报告服务器 ID(仅限串口)- 22 (0x16) 掩码写入寄存器-...图片支持丰富数据格式您可以使用多种格式查看编辑寄存器中数据;支持多达 28 种数据格式,包括:Signed、Unsigned、Hex、Binary、Long、Float、Double 等图片字节序转换工具通过...图片监视通信数据使用 Modbus Slave Emulator,您可以监视串行线路或以太网上详细通信数据,帮助您快速调试与排查问题。图片

    3.2K20

    程序员探案之被吃掉串口数据

    我就蹭蹭热度 来个 程序员探案 系列吧 ---- 直击"案发"现场 前两天做嵌入式开发一哥们在用ARM和一串口设备进行通信时, 碰到了诡异问题,受尽折磨他告诉我: 数据被"吃掉"了,还有人"调包..." "案情"分析 通过大量分析发送和接收数据对比,看出了些端倪 数据被"吃掉" 程序在接收数据时 0x13,0x11总是收不到 数据被"调包" 串口发送方发0x0D,接收方收到0x0A 串口发送方发0x0A...,接收方收到0x0D 找证据 termios结构中找到有几个关键位设置对其有影响 c_iflag 中INLCR,ICRNL,IXON,IXOFF,IXANY(具体含义参见下面表格宏说明) c_iflag...用于设置如何处理串口上接收到数据,包含如下内容: 宏 英文说明 中文说明 INPCK Enable parity check 允许输入奇偶校验 IGNPAR Ignore parity errors...,停止位和效验位 58*@param fd 类型 int 打开串口文件句柄* 59*@param databits 类型 int 数据位 取值 为 7 或者8* 60*@param stopbits

    82140

    程序员探案之被吃掉串口数据

    来个 程序员探案 系列吧 直击"案发"现场 前两天做嵌入式开发一哥们在用ARM和一串口设备进行通信时, 碰到了诡异问题,受尽折磨他告诉我: 数据被"吃掉"了,还有人"调包" "案情"分析 通过大量分析发送和接收数据对比...,看出了些端倪 数据被"吃掉" 程序在接收数据时 0x13,0x11总是收不到 数据被"调包" 串口发送方发0x0D,接收方收到0x0A 串口发送方发0x0A,接收方收到0x0D 找证据 termios...结构中找到有几个关键位设置对其有影响 c_iflag 中INLCR,ICRNL,IXON,IXOFF,IXANY(具体含义参见下面表格宏说明) c_iflag用于设置如何处理串口上接收到数据,包含如下内容...*@param fd 类型 int 打开串口文件句柄 *@param speed 类型 int 串口速度 *@return void*/ void set_speed(int...,停止位和效验位 *@param fd 类型 int 打开串口文件句柄* *@param databits 类型 int 数据位 取值 为 7 或者8* *@param stopbits 类型 int

    59340

    串口怎么操作核心板Linux?ADB(以点灯为例)

    介绍 我们在平时开发中,很有可能遇见有的核心板没有串口,但我们却想操作板子搭建Linux,那么这时候应该怎么办呢?可以使用ADB,下面我们来具体介绍一下ADB。...它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间交互。常常用于手机端Android调试,但也可以使用在Linux开发板调试。...服务器一旦发现 adb 守护程序 (adbd),便会与相应端口建立连接。请注意,每个模拟器都使用一对按顺序排列端口 - 用于控制台连接偶数号端口和用于 adb 连接奇数号端口。...由于服务器管理与设备连接,并处理来自多个 adb 客户端命令,因此您可以任意客户端(或某个脚本)控制任意设备。...输入adb shell进入到板子linux系统命令行 点灯 查看IO复用情况表 cat /sys/kernel/debug/pinctrl/2000000.pinctrl/pinmux-pins

    1.8K40

    一种串口高效收发数据思路及方案

    1 本文在探讨传统数据收发不足之后,介绍如何使用带FIFO串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊串口数据发送方法,可在避免使用串口发送中断情况下,...在此之前,先来列举一下传统串口数据收发不足之处: 每接收一个字节数据,产生一次接收中断。不能有效地利用串口硬件FIFO,减少中断次数。 应答数据采用等待发送方法。...应答数据采用中断发送。增加一个中断源,增加系统中断次数,这会影响系统整体稳定性(可靠性角度考虑,中断事件应越少越好)。 针对上述不足之处,将结合一个常用自定义通讯协议,提供一个完整解决方案。...串口FIFO 串口FIFO可以理解为串口专用缓存,该缓存采用先进先出方式。数据接收FIFO和数据发送FIFO通常是独立两个硬件。...数据接收与打包 FIFO可以缓存串口接收到数据,因此我们可以利用FIFO来减少中断次数。

    74620

    linux源码看socketclose

    linux源码看socketclose 笔者一直觉得如果能知道应用到框架再到操作系统每一处代码,是一件Exciting事情。...上篇博客讲了socket阻塞和非阻塞,这篇就开始谈一谈socketclose(以tcp为例且基于linux-2.6.24内核版本) TCP关闭状态转移图: 众所周知,TCPclose过程是四次挥手...接收队列里面获取一个sk_buffer skb = skb_peek(&sk->sk_receive_queue); do { // 如果已经没有数据,直接跳出读取循环,返回0 if...下一次再读取时候则在刚才描述tcp_rcvmsg上半段直接不读取任何数据再跳转到found_fin_ok并返回0。这样应用就能感知到对端已经关闭了。 如下图所示: ?...直到现在自己带着问题独立看linux源码时候,尽管有之前基础,仍旧被其中各种细节所迷惑。希望笔者这篇文章能帮助到阅读linux网络协议栈代码的人。

    5.4K80

    linux服务器MySQL数据磁盘拷贝以及恢复

    还好生成了快照,让事情没有发展为不可挽救地步。 mysql数据数据恢复。 其他问题都一一解决了。 到了最后, mysql上数据无论如何都不能正常显示出来。...数据库不要紧(有备份), 之前数据才是最要紧。 这就是本文目的。 最终如何将mysql数据显示出来。...-------------------------------------------------------------------- 首先:快照生成磁盘挂载到了/mnt目录下. mysql数据库文件目录是...挂载到/mnt下原mysql数据库文件目录就是/mnt/var/lib/mysql 想要恢复mysql中rap_db数据. 并且恢复数据. 我做法如下: 1. 将rap_db表结构创建好....注: 我们数据库实际数据都是放在ibdata1下, 所以这个文件很重要 4.

    1.8K20

    Linux命令行x度网盘下载数据

    技术背景 做开源项目的时候,尤其是现在数据量越来越大,经常会面临到数据往哪里存放问题。因为自己刚好有一个某度云会员,看了一下还有几十个TB空间还没用上。...于是考虑把这个网盘变成一个定向共享数据平台,当然,传输文件容易,为了更加方便使用,需要从Linux平台上直接下载这些共享文件就最好了。...上传文件到网盘 首先在主页面上创建一个新目录,找到上传按钮: 将所需共享文件传到这个目录下: 传输完成: 共享文件 当鼠标移动到相应文件上面时,点击共享小图标,选择永久有效链接分享。...,第一个链接用就是上一步我们保存,带有提取码那个链接。...总结概要 本文介绍了详细Linux机器上使用wget命令行下载某度网盘中共享加密文件,用这种相对低成本平台来存放一些大文件,相比于免费Gitee和Github等大型开源管理平台还是要稳定一些。

    21210
    领券