陈拓 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

  1. 复制下面的代码到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使用串口相关推荐

  1. ubuntu使用python读串口_Win10的Linux子系统Ubuntu使用串口

    陈拓 2021/01/04-2021/01/09 1. 概述 在<Win10启用Linux子系统安装Ubuntu> 一文中我们已经在Win10上安装了Ubuntu,本文中我们要在Ubunt ...

  2. Win10的Linux子系统Ubuntu安装图形界面

    Win10的Linux子系统Ubuntu安装图形界面 陈拓 2021/07/25-2021/07/26 1. 概述 Win10的linux子系统Windows Subsystem for Linux( ...

  3. 在Win10的Linux子系统Ubuntu中使用Qt

    在Win10的Linux子系统Ubuntu中使用Qt 陈拓 2021/07/26-2021/07/26 1. 概述 在<Win10的Linux子系统Ubuntu安装图形界面> https: ...

  4. Win10的Linux子系统Ubuntu安装pip

    陈拓 2021/01/07-2021/01/07 1. 概述 pip是Python包管理工具,提供了对Python包的查找.下载.安装和卸载功能. 在<Win10启用Linux子系统安装Ubun ...

  5. 手把手教你启用Win10的Linux子系统 Ubuntu

    1.打开"开发者选项" 2.启用"执行 Linux 程序的windows 子系统" 3.应用商店下载安装Ubuntu 附:ubuntu的一些命令及查看已安装软件 ...

  6. Win10的Linux子系统Ubuntu换源

    陈拓 2021/01/08-2021/01/08 为例加快软件包的下载速度,我们要将软件源更换到国内. 更换apt源 查看系统版本:lsb_release -a 修改 /etc/apt/sources ...

  7. Win10启用Linux子系统安装Ubuntu

    陈拓 2021/01/02-2022/10/25 Win10内置Linux子系统,启用后可以安装Ubuntu或者其他的Linux系统.省去了安装虚拟机的麻烦,性能也比虚拟机好,占用资源更少. Wind ...

  8. Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 )

    Win10 系统安装 Linux 子系统教程(WSL2 + Ubuntu 20.04 + Gnome 桌面 ) 1. WSL 简介 1.1 什么是 WSL ? 1.2 WSL1 与 WSL2 2. 安 ...

  9. 在Win10的Linux子系统下搭建ESP32的开发环境

    在Win10的Linux子系统下搭建ESP32的开发环境 一.介绍 1.Windows的Linux子系统  win10进行了内置工作于命令行的Linux子系统功能,WIN10用户只需要开启Linux子 ...

最新文章

  1. 我现在的vimrc配置文件
  2. 法尔康,你大爷的,phalcon配置大全
  3. taskscheduler java_java – 针对不同任务的不同taskScheduler
  4. mysql update 联合更新_Mysql update多表联合更新的方法小结
  5. php rabbitmq 封装,PHP rabbitmq扩展安装
  6. 60-300-024-使用-延迟数据-Flink中延时调用设计与实现
  7. java jframe tab_java Swing实现选项卡功能(JTabbedPane)实例代码
  8. C#获取文件编码格式(转)
  9. VS2017_Reshaper
  10. bootloader recovery
  11. 服务架构演变~超详细
  12. DrawerLayoutMenu使用详解
  13. 关于阿里云视频点播出现的问题
  14. add_months用法解析
  15. 140个绝对绝对值得收藏的电脑技巧
  16. hadoop最新官网如何下载之前版本(2.7.1)
  17. Linux基本命令(完整版-详解)
  18. delphi Android 创建缩略图,用Delphi实现缩略图查看
  19. Chrome调试工具
  20. 振芯科技GM8285C:功能TTL转LVDS芯片简介

热门文章

  1. 华三交换机升级的ipe文件_H3C设备升级
  2. 运营商级NAT(Carrier-grade NAT)
  3. 在线软件-管理软件 收银管理软件 连锁管理软件 餐饮管理软件 足浴管理软件 会员管理软件...
  4. Java根据PDF表单模板和CSV表格批量生成证书等文件
  5. 【React+TS】从零开始搭建react+typescript+router+redux+less+pxToVw自适应+sass+axios反向代理+别名@+Antd-mobile
  6. 思科3750配置只允许SSH登录
  7. web前端技术(一) 之从小白到大牛
  8. 解决IOS无法播放3gp视频, 出现无法编码问题
  9. python/zmq/monitor
  10. sql查询之 max使用