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 ...
随机推荐
- flink-cdc同步mysql数据到hbase
本文首发于我的个人博客网站 等待下一个秋-Flink 什么是CDC? CDC是(Change Data Capture 变更数据获取)的简称.核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的 ...
- 6、Arrays类
Arrays类 Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索) 常用方法 toString 返回数组的字符串形式 Arrays.toString(arr) Integer[ ...
- Nginx+lua+openresty精简系列
1. CentOS系统安装openresty 你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum update 命令).运行下面的 ...
- docker相关总结
Docker 的相关使用记录 一.安装docker linux环境使用yum命令安装docker 第一步:确保自己的虚拟机没有安装过docker,如果安装过的需要将原先的docker进行卸载,命令如下 ...
- Go 源码解读|如何用好 errors 库的 errors.Is() 与 errors.As() 方法
前言 快一个月没有更新技术文章了,这段时间投注了较多的时间学习字节的开源项目 Kitex/Hertz ,并维护一些简单的 issue ,有兴趣的同学也可以去了解: https://www.cloudw ...
- 洛谷P1115 最大子段和 (线性DP)
经典的线性DP例题,用f[i]表示以第i个位置结尾的最大连续子段和. 状态转移方程:f[i]=max(f[i],f[i-1]+a[i]); 这里省去了a数组,直接用f数组读数据,如果f[i-1]< ...
- 洛谷P1120 小木棍 (搜索+剪枝)
搜索的经典题. 我们要求木根的最小长度,就要是木根的数量尽可能多,可以发现木根的长度一定可以整除所有小木棒的总长度,从小到大枚举这个可能的长度,第一次有解的就是答案. 关心的状态:当前正在拼哪根木棍, ...
- Mybatis PageHelper 使用的注意事项
什么时候会导致不安全的分页? PageHelper 方法使用了静态的 ThreadLocal 参数,分页参数和线程是绑定的. 只要你可以保证在 PageHelper 方法调用后紧跟 MyBatis 查 ...
- 齐博x1直播神器聊天小插件
下载地址如下:https://down.php168.com/livemsg.rar 本插件由论坛网友笨熊提供 非常感谢他给大家提供那么一个非常好用的直播必备神器. 如下图所示,大家在直播的时候,这个 ...
- VS code 如何使用HTML Boilerplate插件
此插件是一个HTML 模版插件,可以摆脱为 HTML 新文件重新编写头部和正文标签的苦恼. 只需在空文件中输入 html,并按 tab 键,即可生成干净的文档结构.也可以输入!,然后按tab键或者en ...