Windows下使用Python实现串口通信

  • 基本信息
  • 配置过程
    • 配置思路
    • 详细配置过程
      • 安装USB装TTL驱动
      • 配置serial库
      • 获取设备端口号
      • 配置串口通信
        • 配置说明
        • 测试过程
  • 其他学习记录
  • 参考资料

基本信息

端口号:COM5

使用语言:Python

使用串口通信库:python的serial库

测试环境:Windows-Jeston nano

使用硬件:笔记本电脑windows系统、USB转ttl、Jeston nano(做数据接受)

配置过程

配置思路

这里配置思路和之前发的博文使用Jeston nano配置串口通信的思路一致,均调用python的serial库实现相应的功能,只是这里的端口号不像linux下ttyUSB这种形式,而是类似于COM5这种,这与第一步使用的驱动软件有关。


详细配置过程

安装USB装TTL驱动

浏览器搜索ch340:

选择安装即可:

配置serial库

你可以直接用pip下载serial库

pip install pyserial

但是可能因为你换源的关系找不到这个库,当然你也可以直接从github下载:

github地址:https://github.com/pyserial/pyserial

配置过程:直接下载上述链接 zip 文件,将其中serial文件夹复制到您 使用的python工程目录下的 Lib/site-packages下即可

我这里是在anaconda环境下;

当然你也可以直接在pycharm编辑器上下载(如果能搜得到的话);

测试:import serial 无报错即可。

获取设备端口号

COM5 为例

这里可以在设备管理器中直接查看ch340的端口号:右击 此电脑-属性-设备管理器-端口

也可以使用代码查看:

代码如下:

import serial
import serial.tools.list_portsplist = list(serial.tools.list_ports.comports())if len(plist) <= 0:print("The Serial port can't find!")
else:plist_0 = list(plist[0])serialName = plist_0[0]serialFd = serial.Serial(serialName, 9600, timeout=60)print("check which port was really used >", serialFd.name)

配置串口通信

配置说明

说明

因为手里没有两个USB转ttl,不能做到在windows下同时发送和接受数据,所以借助手边的jeston nano来完成数据传输测试;对于你,如果有两个USB转ttl,你可以开一个串口调试软件测试;当然,你可以用单片机通信,如51、32、arduino;

测试平台

​ Windows-pycharm-python-serial

​ Jeston nano-CuteCom

(CuteCom为一linux下的串口调试sudo apt-get install cutecom软件,你可以通过:sudo apt-get install cutecom 安装,通过:sudo CuteCom 使用)

测试效果:代码实现双方发送接受数据,并将数据打印出来;这里因为我还不会用python实现多线程,所以只能用两个代码分别实现发送和接受。

测试过程

测试效果:

​ windows端:

​ Jeston nano端:

​ 配置;这里可以直接看见Jeston nano3个串口

发送接收:

windows端代码:

import time
import serialprint("UART Demonstration Program")
print("NVIDIA Jetson Nano Developer Kit")serial_port = serial.Serial(port="COM5",                #记得替换此处端口号baudrate=115200,bytesize=serial.EIGHTBITS,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,
)
# Wait a second to let the port initialize
time.sleep(1)try:# Send a simple headerserial_port.write("UART Demonstration Program\r\n".encode())serial_port.write("NVIDIA Jetson Nano Developer Kit\r\n".encode())while True:if serial_port.inWaiting() > 0:data = serial_port.read()print(data)serial_port.write(data)# if we get a carriage return, add a line feed too# \r is a carriage return; \n is a line feed# This is to help the tty program on the other end# Windows is \r\n for carriage return, line feed# Macintosh and Linux use \nif data == "\r".encode():# For Windows boxen on the other endserial_port.write("\n".encode())except KeyboardInterrupt:print("Exiting Program")except Exception as exception_error:print("Error occurred. Exiting Program")print("Error: " + str(exception_error))finally:serial_port.close()pass

后续有时间可以试试python多线程或者windows下使用C++调用相应的库实现串口通信…

其他学习记录

python部分:

​ python环境的包都在Lib/site-packages下;

​ Communication.Print_Used_Com() :Communication类调用Print_Used_Com()函数;

​ Python有3种方法,静态方法(staticmethod),类方法(classmethod)和实例方法 代码:global Ret ,声明rect为全局变量

global Ret 声明rect为全局变量(在类中)

关于通信:

​ 如果要同时收发数据,要使用python多线程实现;

​ 可以直接用printf方法发送数据

​ serial.Serial(serialName, 9600, timeout=60) 这里赋值为 5、‘com5’、“com5”、‘COM5’、“COM5”都可以 不区分大小写

serial.printf("%c", a);

这里找一种电脑和Jeston nano传输文件的方式,要求:不使用外网、互联网连接。

参考资料

1、pyserial官方github仓库:https://github.com/pyserial/pyserial.

2、这篇博客稍微总结了一下serial库的常用参数: https://www.cnblogs.com/-wenli/p/11261109.html .

3、https://www.cnblogs.com/dongxiaodong/p/9992083.html .

Windows下使用Python实现串口通信相关推荐

  1. python windows 消息通讯_在windows下使用python进行串口通讯的方法

    在windows下使用python进行串口通讯的方法 Windows版本下的python并没有内置串口通讯的pyserial的库,所以需要自己下载.参照了网上的教程,有许多用的pip的安装方式,但是试 ...

  2. python中串口通信的步骤及实现

    python内置的库函数确实很强大,serial库中包含了串口通信所用到的一些函数.本文用python实现了串口的一种简单通信. 代码实现: import serial#导入串口通信库 from ti ...

  3. windows搭建python开发环境方法_04 Windows下搭建 Python 开发环境 - Python 入门教程

    前面两个小节中我们已经学习了在 MacOS 和 Ubuntu 中安装 Python 的开发环境.当然,作为用户基数最多的 Windows 操作系统,我们当然不会忘记,这节课我们就来学习下如何在 Win ...

  4. Windows下运行python脚本报错“ImportError: No Module named ...”的解决方法

    Windows下运行python脚本报错"ImportError: No Module named ..."的解决方法 参考文章: (1)Windows下运行python脚本报错& ...

  5. Windows下用Python获取电脑显示器物理尺寸和PPI

    Windows下用Python获取电脑显示器物理尺寸和PPI 背景 PPI 和 DPI Python获取PPI 方法一(WMI) 方法二(WINREG) 方法三(WMI+WINREG) 总结 背景 最 ...

  6. Ardunio下实现STM32的串口通信及其与Stduino的区别

    摘要 本文介绍了在Ardunio下配置STM32并进行STM32的串口通信:之后我将介绍一下国人MCU开发平台Stduino与现在所使用的Arduino进行比较. 文章目录 摘要 :man_stude ...

  7. windows下用Python把pdf文件转化为图片(png高清)

    windows下python3实现PDF转png图片,高清!!!希望可以帮到大家 windows下用Python将pdf文件转化为图片(png高清) 不扯没用的,直接上代码 1.环境:windows( ...

  8. windows下安装python scrapy爬虫环境

    windows下安装python scrapy爬虫环境 安装python 根据你的需求下载python安装包,安装python(本文基于python27)https://www.python.org/ ...

  9. windows下用Python把pdf文件转化为图片

    windows下用Python把png图片转化为pdf文件:https://blog.csdn.net/apollo_miracle/article/details/111915070 不扯没用的,直 ...

最新文章

  1. OpenCV 笔记(03)— 读取视频、通过摄像头采集视频、采集视频 canny 边缘检测
  2. Spring DI[依赖注入]
  3. SAP Cloud for Customer的work center显示逻辑
  4. 如何将文件打包、压缩并分割成制定大小?
  5. windows下hadoop的单机伪分布式部署(3)
  6. Java 集合List、Set、HashMap操作三(查找List中的最大最小值、遍历HashTable、List元素替换、List查找位置)
  7. 计算机网络专业图片,计算机网络专业个人简历封面图片
  8. 赢得 Docker 挑战最佳实践
  9. Wpf之元素绑定元素属性
  10. Sinevibes Plugins Bundle for Mac(Sinevibes合成器合集)
  11. 如虎添翼VSPHERE 4/5 环境下 linux/windows 动态扩展磁盘
  12. DXL应用:向设计元素中添加设计元素
  13. go语言[3]-数组
  14. unity 粒子特效优化
  15. S35VB100-ASEMI日本新电元平替整流桥S35VB100
  16. Python中具有不确定个数参数的函数
  17. Python-docx python处理Word文档之加下划线
  18. 计算机论文 a会 c会,ccf b类论文 sci几区_焦文静_电影学者王田
  19. C语言入门习题系列三(含答案)
  20. 深度学习基础--Bottleneck(瓶颈) Architectures

热门文章

  1. IBM Rational Appscan Part 1(IBM Rational Appscan第1部分)
  2. [wordpress插件]汉化woocommerce插件后台文字
  3. 平移不变性和Siam目标跟踪
  4. fedora安装watchman
  5. 做新时代弄潮儿!文创产业智能化的融合与颠覆
  6. 使用jQuery创建折叠式菜单(手风琴效果)
  7. iOS16适配:April 25,all apps submitted to the App Store must be built with the iOS 16.1 SDK or later
  8. 金蝶云苍穹点击按钮出现F7列表弹窗,并获取选择中行的数据
  9. ENVI中基于Modis影像提取NDVI处理步骤
  10. dedecms iis mysql_iis 安装织梦DedeCMS 教程