Windows的Linux子系统Windows Subsystem for Linux 简称WSL。 Win10的串口,可以直在WSL中接使用。从windows COM端口到Linux tty接口之间有一个简单的映射,即COMx映射到ttySx,例如COM3对应WSL中的设备名称/dev/ttyS3。 在WSL2版本中,硬件访问支持将受到限制,例如:您将无法访问GPU、串行或USB设备。所以要使用串行或USB设备要用WSL。 ### Win10的Linux子系统Ubuntu使用串口详解 #### 1. 概述与背景 Windows Subsystem for Linux(简称WSL)是Microsoft提供的在Windows操作系统上运行原生Linux二进制应用的功能。它无需虚拟机即可实现,极大地提高了开发效率。本文将详细介绍如何在Win10的Linux子系统Ubuntu环境中使用串口。 WSL有两种主要版本:WSL 1 和 WSL 2。WSL 2 提供了更好的性能和支持更多的功能,但它对硬件访问有所限制,比如不能直接访问GPU、串行或USB设备等。因此,对于需要访问这些设备的应用场景,通常推荐使用WSL 1。 #### 2. 查看WSL版本 在开始之前,我们需要确认当前使用的WSL版本。可以通过以下步骤来完成: 1. **打开命令提示符**:按下 `Win+R` 组合键后输入 `cmd` 并按Enter键。 2. **检查WSL版本**:在命令提示符中输入 `wsl -l -v` 命令,并按Enter键执行。 这将列出所有已安装的WSL发行版及其对应的版本号。 #### 3. 连接USB-Serial串口设备 对于没有内置串口的现代笔记本电脑,通常需要通过USB转串口适配器来实现串口通信。这里以CH340G USB-Serial转接板为例进行介绍: 1. **硬件连接**:将CH340G USB-Serial转接板连接到笔记本电脑的USB接口上。为了测试目的,可以使用跳线帽将TXD和RXD针脚短接,形成回环测试。 - 在Windows 10系统中,系统会自动识别并安装驱动程序,使得转接板被识别为COM端口(如COM3)。 2. **映射关系**:在WSL中,Windows的COM端口会映射到Linux的tty设备。例如,COM3将映射为 `/dev/ttyS3`。 #### 4. WSL Ubuntu使用程序访问USB-SERIAL串口 接下来,我们通过Python和Node.js程序来演示如何在WSL Ubuntu中访问USB-SERIAL串口。 ##### 4.1 从Python访问COM端口 1. **安装Python串口模块**: - 首先确保已经安装了Python环境。 - 安装Python的串口库 `pyserial`,可以使用命令 `pip install pyserial`。如果遇到权限问题,可以使用 `sudo pip install pyserial`。 2. **编写Python串口测试脚本**: - 创建一个名为 `hello.py` 的Python脚本文件。 - 将以下代码复制到脚本文件中: ```python import serial ser = serial.Serial('/dev/ttyS3') # open serial port print(ser.name) # check which port was really used ser.write(b'serial port on wsl\n') # write a string s = ser.readline() print(s) ser.close() ``` 3. **运行脚本**:在终端中输入 `python hello.py` 来执行脚本。 ##### 4.2 从Node.js访问COM端口 1. **创建Node.js项目**: - 在WSL的Ubuntu环境中创建一个新的工作目录。 - 初始化一个新的Node.js项目,使用命令 `npm init`。 2. **安装Node.js串口模块**: - 安装Node.js串口库 `serialport`,可以使用命令 `npm install serialport`。 3. **编写Node.js串口测试脚本**: - 创建一个名为 `index.js` 的Node.js脚本文件。 - 将以下代码复制到脚本文件中: ```javascript 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(`Received: ${line}`); }); ``` 4. **运行脚本**:在终端中输入 `node index.js` 来执行脚本。 #### 5. 结论 通过以上步骤,我们不仅介绍了如何在Win10的Linux子系统Ubuntu中使用串口,而且还提供了实际操作的例子。无论是使用Python还是Node.js,都能够实现对USB-Serial串口的有效访问和数据传输。这对于那些需要在Windows环境下进行串口通信的开发者来说非常有用。需要注意的是,在WSL 2中,由于硬件访问限制,可能需要考虑使用WSL 1或其他方法来实现对串行或USB设备的访问。
- 粉丝: 4006
- 资源: 64
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- x64dbg-development-2022-09-07-14-52.zip
- 多彩吉安红色旅游网站-JAVA-基于springBoot多彩吉安红色旅游网站的设计与实现
- 本 repo 包含使用新 cv2 接口的 OpenCV-Python 库教程.zip
- 更新框架 (TUF) 的 Python 参考实现.zip
- Qos,GCC,pacing,Nack
- 章节1:Python入门视频
- 无需样板的 Python 类.zip
- ESP32 : 32-bit MCU & 2.4 GHz Wi-Fi & BT/BLE SoCs
- 博物馆文博资源库-JAVA-基于springBoot博物馆文博资源库系统设计与实现
- 旅游网站-JAVA-springboot+vue的桂林旅游网站系统设计与实现