gpt4 book ai didi

c# - 串口通讯写入

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:52 24 4
gpt4 key购买 nike

我写了一个简单的 c# 应用程序,具有串行功能沟通。我正在使用它来读取和写入设备。装置识别字符串命令。我成功地能够从设备读取使用这个应用程序。但是人们正在向设备写入(发送)命令。我只是在使用

if (serialPort.IsOpen == true)
{
serialPort.Write("Command1");
}

但是我的设备没有响应。

为了检查, 我尝试使用 super 终端向我的计算机发送相同的命令设备和我的设备识别它并完美运行。

谁能指导我正确的写作方式或什么需要确保在 c# 中写入串口。这是编码问题吗...(使用同一个应用程序的串行读取工作得很好!!)感谢您的宝贵时间。

此外,没有异常或错误并且处于 Debug模式该行执行。

最佳答案

这是一个非常常见的问题,并且总是由将 Handshake 属性设置为 None 引起的。如果 DTR 信号未打开,串口设备几乎总是关注握手信号并忽略您发送的任何内容。这表明您已通电并且它接收到的数据不是噪音。需要将 DtrEnable 设置为 true,这也是 HyperTerminal 所做的。

当它认为您还没有准备好接收任何东西时,它不会发回任何东西,因为 RTS 信号没有打开。需要将 RtsEnable 设置为 true,这也是 HyperTerminal 所做的。或者只是正确设置 Handshake 属性,Handshake.RequestToSend 是常见的要求。

如果您仍然遇到问题,那么您可以使用 SysInternals 的 PortMon 将您的程序发出的串行端口驱动程序命令与 super 终端发出的串行端口驱动程序命令进行比较。

关于c# - 串口通讯写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14627620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com