SerialException:Cannot configure port something went wrong
完整报错
SerialException:Cannot configure port something went wrong, Original message: OSError(22, '参数错误', None, 87)
解决办法
波特率错误,没错, 当时按照网上 modbus_tk 模块例子写的, 所以完全没有注意到波特率值与协调商定好的不一致, 因为当时已经可以成功的读写了(当时用的是usb串口进行的调试), 而经过我反复测试发现, usb串口连接使用波特率使用19600 没有报错, 而工业电脑上集成的串口波特率使用19600 就报我上面提的错误。因为我们当时商定的波特率是 19200。所以我波特率改为19200就直接成功了
其他(我排查的步骤)
这个垃圾问题我一步一步排查,首先当时是排查为什么报错,百度一番没找到, 谷歌一番又没找到, 然后我想到了可能是usb串口与工业电脑集成的串口有所区别, 然后我在工业电脑上接入了usb串口, 果不其然代码可以成功运行了, 这个时候我觉得可能是 COM1这种串口的名字在usb串口和工业电脑集成串口不一致导致的, 所以简单写了一个测试程序
import serial
PORT = str(input("输入连接串口号:"))
serialFd = serial.Serial(PORT,9600,timeout = 6,bytesize=8, parity='N', stopbits=1)
print ("check which port was really used >",serialFd.name)
结果我惊讶的发现,无论usb串口还是集成串口都可以成功连接, 这个时候我目标就已经转向了波特率这个参数,所以我写了下面这个测试程序
import serial
PORT = str(input("输入连接串口号:"))
b = int(input("波特率:"))
serialFd = serial.Serial(PORT,b,timeout = 6,bytesize=8, parity='N', stopbits=1)
print ("check which port was really used >",serialFd.name)
结果发现果然是波特率影响的报错, 然后我查看了软件连接的波特率

果然和我写的波特率不一致, 我哭笑不得。很多错误都是低级错误,但是报错却很难查到
所以你看到这篇文章希望可以节约你的时间,这个垃圾问题浪费了我一个小时的时间。
最后
其实核心的一个问题就是为什么 usb串口使用波特率使用19600不会报错,而工业电脑集成的串口就必须与协调的一致才可以。我当时不知道两者有区别,所以才会浪费这么长时间
如果有明白人希望给我简单的说一下, 我不是专门搞这玩意的。
SerialException:Cannot configure port something went wrong的更多相关文章
- Spring Boot - how to configure port
https://stackoverflow.com/questions/21083170/spring-boot-how-to-configure-port
- [官网]How to configure the Microsoft Distributed Transaction Coordinator (MSDTC) on Linux
How to configure the Microsoft Distributed Transaction Coordinator (MSDTC) on Linux APPLIES TO: SQL ...
- 使用weave管理docker网络
weave简介 Weave creates a virtual network that connects Docker containers deployed across multiple hos ...
- How to: Fix a network printer suddenly showing as offline in Windows Vista, 7 or 8 « Robin's Blog
This post has become quite popular – so I've updated it with a bit more detail, plus some people's e ...
- FW:使用weave管理docker网络
Posted on 2014-11-12 22:20 feisky 阅读(1761) 评论(0) 编辑 收藏 weave简介 Weave creates a virtual network that ...
- simpleBLEPeripheral.c 文件分析
这个配置或者说任务, 让这个蓝牙设备成为了一个简单的BLE外设. 这里定义了外设的广播数据, 以及最重要, char被改变之后的回调, 引出后来的coreHandler里面的, ack 以及写e2pr ...
- ubuntu 14.04安装quickbuild server (一)
官网: http://www.pmease.com/ 指导网站: http://wiki.pmease.com/display/QB60/ 1. 安装quickbuild server ------ ...
- 用蓝牙芯片CC2541/CC2540实现一个智能恒温箱
最近突然想自己做一个智能小冰箱玩一玩,于是决定动手试一试. 成品效果图 原材料 半导体制冷片一只 散热风扇 12V电源一台 智能恒温箱电路板 控制板的PCB图 原理图 供电部分原理图 制冷片控制部分原 ...
- 6、CC2541修改按键调节广播发送功率例程为持续发送4DB的蓝牙基站
一.目的 在 OSAL操作系统-实验31 从机广播功率修改-(20141029更新).zip 基础上进行修改,该工程是通过5向按键的上下按键来控制广播功率的加减,总共有4个档位.我们的目的是直接用最高 ...
- VirtualBox Network Config
Sharing Host VPN with VirtualBox guest After looking for this solution everywhere, I finally found a ...
随机推荐
- Webdriver安装记
和之前的博文对照,这是一篇不一样的博文 因为终于开始实际应用啦! 首先,要安装Python Python在哪找--官网有链接的:Python Release Python 3.6.3 | Python ...
- js工厂模式和构造函数
<!DOCTYPE html><html><head> <title>工厂模式和构造函数</title> <meta charset ...
- SSH 克隆跟HTTP 克隆地址的区别
1.使用SSH 克隆 需要事先把本机生成的SSH公钥配置到项目中,然后直接复制ssh克隆地址就能直接克隆了 2.使用HTTP克隆 可以不配置本机的SSH公钥,但是克隆时需要使用项目用户的账号密码登录进 ...
- Kubernetes 监控--Prometheus 高可用: Thanos
前面我们已经学习了 Prometheus 的使用,了解了基本的 PromQL 语句以及结合 Grafana 来进行监控图表展示,通过 AlertManager 来进行报警,这些工具结合起来已经可以帮助 ...
- Mysql三种日志(binlog,redolog,undolog)的作用和区别
Mysql有三种很重要的日志也是面试经常涉及到的考点,分别是 binlog .redo log和undo log, 这里面binlog 是server层实现的日志,而redo log 和undo lo ...
- 学习ASP.NET Core Blazor编程系列四——迁移
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- Node.js(七)MySql+ajax
Api.js const express=require("express"); const router=express.Router(); const mysql = requ ...
- CentOS 7.9 安装 rocketmq-4.9.2
一.CentOS 7.9 安装 rocketmq-4.9.2 地址: https://rocketmq.apache.org https://github.com/apache/rocketmq ht ...
- 分布式存储系统之Ceph集群CephFS基础使用
前文我们了解了ceph之上的RBD接口使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16753098.html:今天我们来聊一聊ceph之上的另一 ...
- Linux、Windows下Redis的安装即Redis的基本使用详解
前言 什么是Redis Redis是一个基于内存的key-value结构数据库.Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母 ...