C# .NET 串口已连接,但无法读取或写入

2024-05-04

我使用 C# 和 .NET 4.5 以及 Visual Studio 2012 编译器/IDE 来打开串行端口并与之交互。我的代码旨在连接到 US Digital 的 QSB 正交 USB 转换器。

这是我用来打开端口并连接的代码。

this.Port = new SerialPort();

this.Port.BaudRate = 230400;
this.Port.PortName = "COM9";
this.Port.Parity = Parity.None;
this.Port.Handshake = Handshake.None;
this.Port.DataBits = 8;
this.Port.StopBits = StopBits.One;

this.Port.Open();

在 this.Port.Open() 之后立即设置断点可以让我验证串行端口是否确实已连接。在另一段代码中,调用以下代码来响应按钮按下:

this.Port.WriteLine("W168");

该命令*应该使我的硬件旋转电机,事实上,如果我使用 Putty 或使用我编写的 Python 脚本发送命令(两者都使用与 C# 代码完全相同的设置),它就会旋转电机。但什么也没发生。我可以在 Putty 或 Python 中打开端口并执行具有预期结果的命令,然后运行我的 C# 代码,但没有任何反应。

我是否缺少一些 C# 特定的东西来阻止它工作?

无论如何,这是我的工作 Python 代码:

ser = serial.Serial("COM9", 230400, timeout=1)
ser.write(b"W168\n")

pySerial 文档链接:http://pyserial.sourceforge.net/pyserial_api.html#classes http://pyserial.sourceforge.net/pyserial_api.html#classes

C# 代码中提到但上面的 python 调用中未提及的字段的默认值是:

  • 字节大小 = 8
  • 奇偶校验 = 无
  • 停止位 = 1
  • xonxoff = 假
  • rtscts = 假
  • dsrdtr = 假

在 C# 中使用串行端口时,建立连接时要始终记住一件事。如果将握手值设置为 none,如下所示:

this.Port.Handshake = Handshake.None;

然后还需要设置一些参数才能完成连接,它们是:

this.Port.DtrEnable = true;
this.Port.RtsEnable = true;

原因是因为 Dtrenable 的意思是这样的:

数据终端就绪 (DTR) 信号

MSDN 对 DTR 的含义是这样解释的:

数据终端就绪 (DTR) 通常在 XON/XOFF 软件握手、请求发送/清除发送 (RTS/CTS) 硬件握手和调制解调器通信期间启用。

Rtsenable 的意思是:

请求发送 (RTS) 信号

MSDN 对 RTS 的含义是这样解释的:

请求发送 (RTS) 信号通常用于请求发送/清除发送 (RTS/CTS) 硬件握手。

这两个参数一起处理串行端口通信的握手,而无需在主设备和从设备之间定义它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# .NET 串口已连接,但无法读取或写入 的相关文章

  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 如何在neo4j中显示屏幕上的所有节点

    我有近 5000 个节点Recipes和 5 个节点Meal Types在 Neo4j 数据库中 目前他们之间没有任何关系 我正在下面运行 CQL MATCH n RETURN n LIMIT 100000 这运行良好 但它返回与相关的节点
  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • 在opencv中发现凸性缺陷? [根据给定的输入图像崩溃..]

    我有一个计算图像凸包的程序 我正在尝试使用此信息来计算fingers存在于输入图像中 从一些冲浪中我发现做到这一点的方法 数手指 是 寻找轮廓 凸包 凸性缺陷 但我在使用凸性缺陷函数时遇到了麻烦 它编译得很好 但在运行时程序会因某些输入图像
  • Linux 中不使用 C++ 的 C 异常处理

    Linux 是否提供了 C 语言的异常处理而不求助于 C 或者 实现此类异常处理的最佳方法是什么 目标是避免检查每个调用的函数的返回码 而是执行类似于 C 的线程安全且易于移植的操作 您可以通过为其编写信号处理程序来处理信号 GNU 记录的
  • gettext 中的“msgstr”有多个“msgid”

    是否可以制作两个或多个msgids匹配一个msgstr 例如 两者 列表 空 and 你正在接近gettext以错误的方式 它是如何工作的 msgid每个条目都需要 msgctxt是可选的 用于区分两个msgid内容相同但翻译可能不同的记录
  • 将 Recyclerview 与 DiffUtil.ItemCallback 一起使用不会滚动到顶部?

    我会搜索项目 每次从服务器获取时 当我搜索 o 时 它起作用 然后 ot 它再次起作用 作为 o 搜索的结果 我有 20 个项目 如果是 ot 我有 10 个项目 这是这 20 个项目的一部分 我确实删除了 EditText 中的 t 它显
  • 如何将 model.summary() 保存到 Keras 中的文件?

    有model summary 方法 https keras io models about keras models 在喀拉斯 它将表打印到标准输出 是否可以将其保存到文件中 如果您想要摘要的格式 您可以传递print功能为model su
  • 如何从 Grails 应用程序的 URL 中删除应用程序名称?

    我有一个应用程序在这样的 URL 上运行 http myapp mydomain com myapp http myapp mydomain com myapp 我不想要 myappURL 中的部分 那么如何去掉应用程序名称呢 我只想 ht
  • sqlalchemy:无法在拆卸时删除数据库

    我正在尝试使用 pytest 进行 sqlalchemy 但遇到以下问题 pytest fixture scope function def my session my db request from my models import Se
  • 如何使用 ConstraintLayout 将多个视图居中在一起?

    背景 谷歌宣布了一个名为 约束布局 http tools android com tech docs layout editor 这应该是最终的布局 它可以取代所有布局 同时保持平坦 没有嵌套布局 并具有更好的性能 问题 事实是 除了 Go
  • 显示 am4charts.XYChart 中的所有工具提示

    大家好 我正在使用 am4charts XYChart 来显示两个不同供应商的价格 该图表工作正常 并且仅当我们将光标悬停在图表中的点上时 每个点的工具提示才可见 但是我的要求是在渲染图表时应显示图表中所有点的工具提示 它应该一直显示而不悬
  • WSL 发行版对 VSCode 或 IntelliJ IDE 不可见

    几周来我遇到了这个非常奇怪的问题并且无法解决 我通常在 WSL2 上编码 它曾经在这台机器和用户上运行良好 但现在 每当我尝试在 Visual Studio Code 中打开远程资源管理器或尝试在 IntelliJ IDE 中打开 现有文件
  • Google Chrome 扩展:如何通过弹出页面上的 iframe 查看后台页面?

    我已经尝试了一段时间了 但无法让它发挥作用 基本上 当启用扩展时 我想要一个持久页面 无论是否单击浏览器操作图标 它都将保持套接字连接 后台页面就是这样发挥作用的 现在 我希望此背景页面显示在弹出页面中 通过 iframe 或任何替代方案
  • 使用javascript批量上传请求到Google Cloud Storage

    我正在尝试使用 javascript 在批量请求中将多个图像上传到谷歌云存储 我在用着https developers google com storage docs json api v1 how tos batch example ht
  • 在我在类构造函数中设置断点之前,gdb 类是不完整的类型?

    我在 gdb 中调试 Chrome 时总是遇到这个问题 如果我尝试打印某种类型的变量 GDB 不知道其内部结构 gdb p current child get 12 blink NGBlockNode 0xc2f755c1830 gdb p
  • 获取:错误C2668:'sqrt':对重载函数的不明确调用[重复]

    这个问题在这里已经有答案了 尝试根据教科书中给出的示例构建下面的源代码 我使用的是 Visual Studio 2008 编译器似乎不知道如何处理 sieve 1 gt Rebuild All started Project fig21 4
  • 是否可以将 Windows 事件记录到应用程序洞察中?

    我们在一些站点上运行 Application Insights 并且希望聚合 Windows 事件日志中的日志 我们在 Windows Server 2016 上运行 我知道其他日志传送程序 例如 Elastic 可以从 Windows 事
  • 会话对象不更新 ASP.NET

    我在代码的一个时刻设置了一个会话对象 Session my name Dave 稍后在我的代码中 我给用户一个更新此对象的机会 Session my name TextBox1 Text 我重新加载页面并显示一个简短的 hello 语句 如
  • Struts 2 如何从自定义验证器中获取 i18n 消息

    如何从自定义验证器中的 key 获取消息 正如中提到的Struts 2 重用自定义表达式验证器 https stackoverflow com questions 28038827 struts 2 reusing custom expre
  • C# .NET 串口已连接,但无法读取或写入

    我使用 C 和 NET 4 5 以及 Visual Studio 2012 编译器 IDE 来打开串行端口并与之交互 我的代码旨在连接到 US Digital 的 QSB 正交 USB 转换器 这是我用来打开端口并连接的代码 this Po