Win10的Linux子系统Ubuntu使用串口
陈拓 2021/01/04-2021/01/09
1. 概述
在《Win10启用Linux子系统安装Ubuntu》
https://zhuanlan.zhihu.com/p/341394468
https://blog.csdn.net/chentuo2000/article/details/112131624
一文中我们已经在Win10上安装了Ubuntu,本文中我们要在Ubuntu中使用串口。
Windows的Linux子系统Windows Subsystem for Linux 简称WSL。
Win10的串口,可以直在WSL中接使用。从windows COM端口到Linux tty接口之间有一个简单的映射,即COMx映射到ttySx,例如COM3对应WSL中的设备名称/dev/ttyS3。
在WSL2版本中,硬件访问支持将受到限制,例如:您将无法访问GPU、串行或USB设备。所以要使用串行或USB设备要用WSL。
查看当前wsl版本:
Win+R > cmd
输入wsl -l -v
2. 连接USB-Serial串口设备
- 硬件连接
笔记本上没有串口,我们用CH340G USB-Serial转接板。为进行串口回环测试,用跳线帽短接TXD和RXD。
Win10可以自动识别CH340,在我的电脑上识别为COM3。
3. Win10使用CH340 USB-SERIAL串口
见《Win10使用CH340USB-SERIAL串口》
https://zhuanlan.zhihu.com/p/342339132
4. WSL Ubuntu使用程序访问USB-SERIAL串口
参考文档《WSL: Working with COM ports on Windows/Linux》
https://icircuit.net/wsl-working-with-com-ports-on-windows-linux/2866
4.1 从Python访问COM端口
通过WSL,我们可以从Linux程序访问windows COM端口。下面我们将从Python和NodeJS程序访问COM端口。
ls /dev | grep ttyS3
- 创建一个目录wsl-python-sp
mkdir wsl-python-sp
cd wsl-python-sp
- 安装python串口模块
pip install pyserial
需要先安装Python2包管理工具pip。
参考《Win10的Linux子系统Ubuntu安装pip》https://zhuanlan.zhihu.com/p/342750610
重新启动Ubuntu再安装:
- 复制下面的代码到hello.py
import serial
ser = serial.Serial('/dev/ttyS3') # open serial port
print(ser.name) # check which port was really used
ser.write(b'serail port on wsl \n') # write a string
s = ser.readline()
print(s)
ser.close()
- 测试
python hello.py
4.2 从NodeJs访问COM端口
- 回到家目录
- 创建一个目录wsl-sp
mkdir wsl-sp
cd wsl-sp
- 换源
为了加快下载速度先换源,请参考《Win10的Linux子系统Ubuntu换源》
https://zhuanlan.zhihu.com/p/342771976
- 安装npm
安装Nodejs的包管理器npm:
sudo apt-get update
sudo apt-get install npm
查看NodeJS和npm的版本:
- 初始化NodeJS项目
npm init
不知道怎么填写就一路回车。
- 安装serialport
npm install serialport
- 复制下面的代码到index.js
const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const port = new SerialPort('/dev/ttyS3', { baudRate: 9600})
const parser = new Readline()
port.pipe(parser)
parser.on('data', line => console.log(`> ${line}`))
port.write('serailport on wsl\n')
- 运行NodeJS脚本
node index.js
5. Ubuntu使用串口工具访问USB-SERIAL串口
5.1 minicom
- 安装
sudo apt-get install minicom
- 查看版本
- 串口设置
sudo minicom -s
按照下图设置:
设置串口3;8位数据为;1位停止位;无奇偶校验位;波特率115200;无硬件流和软件流控。
回车
保存Save setup as df1,退出Exit from Minicom。
- 运行sudo minicom
Ctrl+A 按下E选择回显。
成功!
常用命令:
Ctrl+A W:当显示的内容超过一行之后自动换行
Ctrl+A C:清屏
Ctrl+A O:打开配置选项
Ctrl+A X:退出minicom
6. 用stty命令设置终端的通信参数
《stty 命令说明及使用讲解》https://blog.csdn.net/boyemachao/article/details/50394592
为了使用Shell命令操作串口,我们需要用stty命令对当前终端的通信参数进行一些设置。
stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数。UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。
可以在stty命令中使用-a查看当前注册终端的设置情况。
- 检查串口当前设置
stty -F /dev/ttyS3
-F指定设备/dev/ttyS3。
查看详细信息stty -F /dev/ttyS3 -a
- 串口设置115200 8n1
stty -F /dev/ttyS3 speed 115200 cs8 -parenb -cstopb
7. 用Shell命令行读写串口数据
- 查看/dev/ttyS3权限
ls -l /dev/ttyS3
- 修改权限/dev/ttyS3权限
- 打开一个Ubuntu窗口
在终端显示接收的信息cat /dev/ttyS3
等待接收数据。
- 再打开一个Ubuntu窗口
发送数据:
echo "hello!" > /dev/ttyS3
在前一个Ubuntu窗口中可以看到接收的数据:
Ctyl+Z退出。
- 将接收的数据存入文件
在一个窗口输入Shell命令
while [ 1 -eq 1 ]
docat /dev/ttyS3 >> "tmpFile"
done
等待输入。
在另一个窗口输入:
echo "hello!" > /dev/ttyS3
echo "This is a ttyS3 test." > /dev/ttyS3
查看接收的信息:
8. 用busybox microcom命令读串口数据
- 在一个Ubuntu窗口中输入命令
busybox microcom -t 60000 -s 115200 /dev/ttyS3
参数:
-s 波特率
-t 无操作自动退出时间,单位是毫秒,不加-t就是一直等待接收
- 在另一个Ubuntu窗口中发送数据
echo "hello! This is a ttyS3 test." > /dev/ttyS3
在前一个Ubuntu窗口中可以看到接收的数据:
如果遇到错误:microcom: can't create '/var/lock/LCK..ttyS3': File exists
只要把/var/lock/LCK..ttyS3删除就好了:
按ctrl+x可以退出microcom。
Win10的Linux子系统Ubuntu使用串口相关推荐
- ubuntu使用python读串口_Win10的Linux子系统Ubuntu使用串口
陈拓 2021/01/04-2021/01/09 1. 概述 在<Win10启用Linux子系统安装Ubuntu> 一文中我们已经在Win10上安装了Ubuntu,本文中我们要在Ubunt ...
- Win10的Linux子系统Ubuntu安装图形界面
Win10的Linux子系统Ubuntu安装图形界面 陈拓 2021/07/25-2021/07/26 1. 概述 Win10的linux子系统Windows Subsystem for Linux( ...
- 在Win10的Linux子系统Ubuntu中使用Qt
在Win10的Linux子系统Ubuntu中使用Qt 陈拓 2021/07/26-2021/07/26 1. 概述 在<Win10的Linux子系统Ubuntu安装图形界面> https: ...
- Win10的Linux子系统Ubuntu安装pip
陈拓 2021/01/07-2021/01/07 1. 概述 pip是Python包管理工具,提供了对Python包的查找.下载.安装和卸载功能. 在<Win10启用Linux子系统安装Ubun ...
- 手把手教你启用Win10的Linux子系统 Ubuntu
1.打开"开发者选项" 2.启用"执行 Linux 程序的windows 子系统" 3.应用商店下载安装Ubuntu 附:ubuntu的一些命令及查看已安装软件 ...
- Win10的Linux子系统Ubuntu换源
陈拓 2021/01/08-2021/01/08 为例加快软件包的下载速度,我们要将软件源更换到国内. 更换apt源 查看系统版本:lsb_release -a 修改 /etc/apt/sources ...
- Win10启用Linux子系统安装Ubuntu
陈拓 2021/01/02-2022/10/25 Win10内置Linux子系统,启用后可以安装Ubuntu或者其他的Linux系统.省去了安装虚拟机的麻烦,性能也比虚拟机好,占用资源更少. Wind ...
- Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 )
Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 ) 1. WSL 简介 1.1 什么是 WSL ? 1.2 WSL1 与 WSL2 2. 安 ...
- 在Win10的Linux子系统下搭建ESP32的开发环境
在Win10的Linux子系统下搭建ESP32的开发环境 一.介绍 1.Windows的Linux子系统 win10进行了内置工作于命令行的Linux子系统功能,WIN10用户只需要开启Linux子 ...
最新文章
- 我现在的vimrc配置文件
- 法尔康,你大爷的,phalcon配置大全
- taskscheduler java_java – 针对不同任务的不同taskScheduler
- mysql update 联合更新_Mysql update多表联合更新的方法小结
- php rabbitmq 封装,PHP rabbitmq扩展安装
- 60-300-024-使用-延迟数据-Flink中延时调用设计与实现
- java jframe tab_java Swing实现选项卡功能(JTabbedPane)实例代码
- C#获取文件编码格式(转)
- VS2017_Reshaper
- bootloader recovery
- 服务架构演变~超详细
- DrawerLayoutMenu使用详解
- 关于阿里云视频点播出现的问题
- add_months用法解析
- 140个绝对绝对值得收藏的电脑技巧
- hadoop最新官网如何下载之前版本(2.7.1)
- Linux基本命令(完整版-详解)
- delphi Android 创建缩略图,用Delphi实现缩略图查看
- Chrome调试工具
- 振芯科技GM8285C:功能TTL转LVDS芯片简介
热门文章
- 华三交换机升级的ipe文件_H3C设备升级
- 运营商级NAT(Carrier-grade NAT)
- 在线软件-管理软件 收银管理软件 连锁管理软件 餐饮管理软件 足浴管理软件 会员管理软件...
- Java根据PDF表单模板和CSV表格批量生成证书等文件
- 【React+TS】从零开始搭建react+typescript+router+redux+less+pxToVw自适应+sass+axios反向代理+别名@+Antd-mobile
- 思科3750配置只允许SSH登录
- web前端技术(一) 之从小白到大牛
- 解决IOS无法播放3gp视频, 出现无法编码问题
- python/zmq/monitor
- sql查询之 max使用