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

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

串口编程的API包# 目前比较常见的针对Java的串口包有3个来源:一是1998年SUN发布的串口通信API:comm2.0.jar(Windows环境下)和comm3.0.jar(Linux/Solaris...## 从串口COM11发送的数据最终将到达与其连通的串口COM21,如果COM21处于可用状态,则到达的数据将被缓存,等待程序的读取。...从串口读入数据有多种模式,本文将介绍“轮询模式”和事件监听模式。   “轮询模式”是指程序(线程)每隔固定的时间就对串口进行一次扫描,如果扫描发现串口中有可用数据,则进行读取。...= new byte[1024]; //记录已经到达串口COM21且未被读取的数据的字节(Byte)数。...,当有数据到达串口的时候就会触发事件,在事件的响应方法中读取串口接收到的数据。

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

Linux基础(串口编程)

虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。废话少讲,今天来解剖使用串口时的编程代码细节。...上面的代码是使用串口的第一步,来解释下都是啥意思。...来瞧瞧: 第21-22行,定义了一个用来配置串口属性的结构体: struct termios serial; bzero(&serial, sizeof(serial)); 第24行,将串口设置为raw...cfsetispeed(&serial, B9600); cfsetospeed(&serial, B9600); 第28-32行,设置串口控制属性(c_cflag),其中: serial.c_cflag...: tcsetattr(fd,TCSANOW,&serial); 当然,上面的 fd 就是系统中的某一个你想要设置的成上面那样的属性参数的串口,比如就拿粤嵌GEC210开发板来说,他有四个串口,其中第一个就已经被用于终端控制了

12.7K20

Linux处理数据包过程

如果不是流入本机的,而是要转发给其他主机的,则必然涉及到另一个流出网卡,此时数据包必须从流入网卡完整地转发给流出网卡,这要求Linux主机能够完成这样的转发。...但Linux主机默认未开启ip_forward功能,这使得数据包无法转发而被丢弃。...Linux主机和路由器不同,路由器本身就是为了转发数据包,所以路由器内部默认就能在不同网卡间转发数据包,而Linux主机默认则不能转发。...如果Linux主机有多块网卡,如果不开启数据包转发功能,则这些网卡之间是无法互通的。...例如eth0是172.16.10.0/24网段,而eth1是192.168.100.0/24网段,到达该Linux主机的数据包无法从eth0交给eth1或者从eth1交给eth0,除非Linux主机开启了数据包转发功能

1.9K40

Linux 查看本机串口方法

最近在了解嵌入式方面的知识,就随笔记录一下: 查看Linux本机串口: 1、查看串口是否可用    可以对串口发送数据比如对com1口,echo /dev/ttyS0 2、查看串口名称使用    ls...-l /dev/ttyS*   一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS*,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的; 3、...查看串口驱动    cat/proc/tty/drivers/serial 4、查看串口设备    dmesg | grep ttyS* 5、查一下板子上的串口有没有设备    grep tty/proc.../dev下应该有一个USB串口:/dev/ttyUSB0. 当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备。...PC上的串口一般是ttyS,板子上Linux串口一般叫做ttySAC; 串口使用: 如果需要查看这个串口设备输出: cat ttyUSB0 如果需要对这个设备输入: echo yaoxu > ttyUSB0

21.3K20

Linux 串口的基本用法

查看Linux本机串口: 1、查看串口是否可用 如果需要查看这个串口设备输出: cat ttyUSB0 如果需要对这个设备输入: echo yaoxu > ttyUSB0 常用的调试工具有: minicom...cutecom Linux系统可视化串口应用软件,使用上与Windows系统串口调试工具。 picocom 效果上类似 minicom 的精简版,设置比较简单,还可以有背景颜色。...PC上的串口一般是ttyS,板子上Linux串口一般叫做ttySAC; 串口权限问题 临时调试解决 在使用串口进行通信时,经常需要使用指令来赋予用户读写的权限 $ sudo chmod 777 /dev...查看linux所有用户 使用 /etc/passwd 文件 使用任何一个像 cat、more、less 等文件操作命令来打印 Linux 系统上创建的用户列表。.../etc/passwd 是一个文本文件,其中包含了登录 Linux 系统所必需的每个用户的信息。

9.8K41

嵌入式Linux串口编程

简介 嵌入式Linux串口编程与Linux系统下的编程没有什么区别,系统API都是一样的。...嵌入式设备中串口编程是很常用的,比如会对接一些传感器模块,这些模块大多是RS232或者RS485接口,对于软件层面上来说,RS232与RS48区别不大。...RS232与RS485在使用上的区别,RS232是全双工的,只能对接一个设备串口设备。RS485是半双工的总线协议,一般可以挂多个传感器设备,半双工的意思是同时只能有一个设备向串口发数据。...用到的API函数 函数 说明 open 打开设备,用于打开串口设备 fcntl 修改设备描述符属性参数 isatty 检测打开的描述符是否指向一个终端 tcgetattr 用来获取串口终端参数 cfmakeraw...将终端设置为原始模式,该模式下所有的输入数据以字节为单位被处理 tcflush 用于清空输入、输出缓冲区 tcsetattr 设置串口终端参数 read 读取数据 write 写数据 close 关闭串口设备

13K20

串口驱动框架的设计思考

帧数据模型一般就是串口接收的时候,发生串口接收中断,把数据放到缓冲区,当一帧数据接收完成后会发生空闲中断,或者DMA完成中断,或者是采用定时器时定时器中断,这样判定接收到一帧数据。...,判断结尾帧后,一次性交给其他程序处理数据包。...这个数据包的处理放在串口接收中断里面,然后去解析报文,获取相关的信息。 基于报文的解析规则,需要的串口波特率比较低,比如9600以下等等,并且采用485等进行数据传输。...其设计思想基于串口中间件的考虑,上层应用不直接访问串口驱动硬件。每次都调用同样的接口去包管理器中去取一帧数据,所以这种设计的出发点是基于一帧数据的模型。...} else { uart_manage.data_w_index = 0; } return len; } 通过上述的设计逻辑,很好的处理了一帧数据包的问题

1.5K12

干货 | 分享一种有趣的数据解析方法

我这里是在嵌入式Linux平台下做的接收,读串口的接口如: int uart_read(void *data, int data_len, long time_out); 下面分享我在实际应用中的三种接收方法...方法三:时间戳法 这种方法需要明确每一帧数据包含有什么数据,以及数据输出的频率是多少。...在相同的线程挂起时间情况下,先把用于uart_read接收数据的buffer设置得稍微大一点,看每一次最多能读取到多少个字节得数据以及读完一帧数据需要读几次串口数据。...然后我们可以通过时间来区分每一帧数据及每一包串口数据,该重新组包地就重新组包。 例如:每帧数据间隔200ms,线程挂起时间10ms,一帧数据有130字节,一帧数据由1包、2包串口数据组成。...可以通过时间戳来判断每一包之间是数据帧之间的间隔还是每一帧数据里的两个数据包之间地间隔,再做相应的逻辑处理即可很好地接收数据。 GPS数据解析 gps数据怎么解析呢?

75251

Bus Hound一个强大的总线分析工具,抓USB转串口数据包

1、前言 Bus Hound是一款强大的总线分析工具,支持USB、NVMe、火线、SATA等设备,本文使用Bus Hound抓USB转串口数据。...2、设备选择 首先选择“Devices”,然后选择USb-SERIAL CH340[COM17],本文使用的USB转串口是COM17。...3、抓包设置 选择“Settings” 在“Limits”中设置最大数据包速率,和最大包长; 在“Column to Display”中设置显示,这里我们设置显示数据包长度、输入输出、数据(hex格式)...可以看出,串口有数据后,软件抓取了每一条数据,也按照设置显示了每条数据包的属性,本文抓包的正是一个串口y-modem升级的数据包,作者在串口y-modem升级异常的时候,正是通过这个抓包分析的。

4.5K20
领券