vb.net - 与 Velleman relais 卡进行串行通信
问题描述
我正在尝试将 Velleman 中继卡VM8090集成到我的 vb.net 项目中。不幸的是,Velleman 只提供了一个 32 位的 DLL,但我们的程序是 x64 编译的。因此,我尝试直接通过串行接口 (USB) 进行通信。
这是 Velleman 的协议描述。
与 Velleman 提供的演示应用程序通信完美。设置中继状态后,我得到中继卡的响应。这显示在演示应用程序中。
疯狂的是:在 vb.net 中打开串行接口后,我不再在演示应用程序(以及 vb.net)中获得任何流量信息。但我需要这个 relais-status-infos (51h)。但即使卡不再发送数据,我仍然可以打开和关闭继电器。
此代码已导致卡停止发送信息。
myComPort = New SerialPort("COM3") With {
.BaudRate = 19200,
.DataBits = 8,
.Parity = Parity.None,
.StopBits = 1,
.Handshake = Handshake.None,
.ReadBufferSize = 1024,
.WriteBufferSize = 1024}
myComPort.Open()
myComPort.Close()
解决方案
确保只有 1 个程序使用 SerialPort,通常只有 1 个程序可以通过 SerialPort 读取和发送数据。还要检查设备是否连接到正确的 USB 端口(在这种情况下是 USB 端口 3)。
检查所有 SerialPort 设置是否设置正确
最后,在您的代码中,comPort 被打开并立即再次关闭。
myComPort.Open() myComPort.Close()
只有在您想要关闭程序或计算机与硬件之间的通信时才关闭 comPort。
我希望这会有所帮助。
推荐阅读
- android - 有没有办法以编程方式使用约束布局助手小部件流?
- javascript - 修改 smooth-dnd 库中的包装器元素
- python - Python timeit 计时器 - 启动和停止功能?
- c++ - 递归地仅返回字符串中的特定字符 C++
- spring - 无法在 docker 容器中运行我的 Spring Boot WAR 文件
- pyspark - 返回超过字符长度限制的列列表 - pyspark/snowflake
- mongodb - 用于标签搜索的 Mongoose 查询
- python-3.x - PyQt5 将事件连接器添加到 QPushButton
- c++ - 了解此转换矩阵的工作原理
- pdf - 将 wxPython 的 PDFViewer 嵌入到 PyQt5 应用程序中