如何实现RS232串口实验室设备与Ubuntu 22.04笔记本的数据传输及记录
如何实现RS232串口实验室设备与Ubuntu 22.04笔记本的数据传输及记录
嗨,我来帮你一步步搞定这个问题,从硬件连接到数据记录都给你理得明明白白:
一、先搞定硬件连接与系统识别
- 先把你的RS232转USB转换器插在Ubuntu笔记本的USB口上,另一端接实验室设备的RS232串口(注意:大部分转换器已经做了TX/RX交叉,要是没数据再考虑调换引脚)
- 打开终端,输入
dmesg | grep tty,看看系统给转换器分配的串口设备,一般是/dev/ttyUSB0或者/dev/ttyACM0 - 为了确保当前用户能访问串口,执行
sudo usermod -aG dialout $USER,然后注销再重新登录,权限就生效了
二、配置串口参数(匹配ASTM 9600波特率)
ASTM协议常规参数是9600波特率、8位数据位、1位停止位、无奇偶校验(也就是常说的8N1),有两种配置方式:
方式1:用stty命令快速配置
直接在终端敲这条命令(把/dev/ttyUSB0换成你刚才查到的设备名):
stty -F /dev/ttyUSB0 9600 cs8 -cstopb -parenb
参数解释:
-F /dev/ttyUSB0:指定要配置的串口设备9600:设置波特率cs8:8位数据位-cstopb:1位停止位(减号表示禁用2位停止位)-parenb:关闭奇偶校验
方式2:用图形化工具minicom(更直观)
- 先安装minicom:
sudo apt install minicom - 启动配置界面:
sudo minicom -s - 选择「Serial port setup」,按提示修改:
- 串口设备:输入你查到的
/dev/ttyUSB0 - 波特率:设为9600
- 数据位:8
- 停止位:1
- 奇偶校验:无
- 串口设备:输入你查到的
- 选择「Save setup as dfl」保存为默认配置,退出配置菜单就能进入minicom的实时数据界面了
三、把数据记录到文件
方法1:用cat命令直接记录
配置好串口后,执行这条命令就能把接收的数据追加到日志文件里:
cat /dev/ttyUSB0 >> lab_device_data.log
按Ctrl+C就能停止记录,数据都会存在lab_device_data.log里。
方法2:用minicom自带的日志功能
在minicom界面里,按Ctrl+A再按L,输入你想要的日志文件名确认后,minicom就会自动把所有接收的数据保存到这个文件里;再按一次Ctrl+A+L就能停止日志记录。
方法3:写个脚本自动记录(适合长期监控)
要是需要定时启动或者按时间戳生成日志,可以写个简单的bash脚本:
#!/bin/bash SERIAL_PORT="/dev/ttyUSB0" LOG_FILE="lab_device_$(date +%Y%m%d_%H%M%S).log" # 先配置串口参数 stty -F $SERIAL_PORT 9600 cs8 -cstopb -parenb # 开始记录并提示 echo "开始记录数据到 $LOG_FILE..." cat $SERIAL_PORT >> $LOG_FILE
保存为record_data.sh,赋予执行权限:chmod +x record_data.sh,运行./record_data.sh就能自动生成带时间戳的日志文件了。
四、常见问题排查
- 要是看不到数据,先检查RS232的TX/RX引脚有没有接反
- 确认已经加入dialout组并重新登录,否则会有权限问题
- 用
stty -F /dev/ttyUSB0查看当前串口参数,确保和设备的ASTM参数完全匹配 - 要是minicom里显示乱码,大概率是波特率或数据位等参数不匹配,再核对设备说明书
备注:内容来源于stack exchange,提问作者Roberto Gimenez




