【发布时间】:2021-02-21 13:10:18
【问题描述】:
我正在尝试在 dotnet 5 和基于 Marlin 的打印板之间建立一个简单的串行端口连接,该板正在运行微控制器的某些变体 (LPC1768FBD100 https://www.arrow.com/en/products/lpc1768fbd100551/nxp-semiconductors)。
我可以使用其他工具打开与板子的连接,发送“M503\n”命令并收到响应,我使用成功的工具是
- 界面(Windows)
- Arduino 串行监视器 (Windows)
- miniterm (Linux)
- 腻子(Windows)
所以我知道该板在 Linux 和 Windows 中都可以正常运行,但是当尝试从 .net 时,我还没有成功从板得到任何响应。我在 .net 5 中上传了一个简单的工具,它连接到串行端口并允许您发送/接收字符串,
https://github.com/devoctomy/SerialPortTester
我在 Windows 和 Linux 中测试过这段代码,相同的端口设置,没有响应。我还针对在 Arduino Uno 板上运行的一个简单的 echo 程序测试了这个确切的代码,并且一切都按预期工作,但是对于我来说,我无法从另一块板上得到任何东西。
我想知道这些其他应用程序正在做的关于串行通信的某些我只是不知道的事情。在 Windows 中测试时,我使用的端口设置与设备管理器中显示的相同,在 Linux 中测试时也使用相同的设置。
在 Linux 中,该板显示为 ttyACM0,这也是我的 Arduino Uno 的安装方式。
有什么建议吗?我敢肯定这不是“马林鱼”问题,因为我测试过的其他工具中只有一个是专门针对马林鱼的,而 Arduino 串行监视器几乎是你能得到的最基本的东西。我认为在 .net 代码中我没有做一些事情......
我也尝试过其他人的旧 .net 代码,它也没有从这个板上得到响应,但是我的 Arduino Uno 运行 echo 程序。
https://www.codeproject.com/Articles/23656/Termie-A-Simple-RS232-Terminal
尼克。
编辑:
我目前正在查看它是否只是 .net 以及在此处生效的底层机制并找到了此页面,
https://www.sparxeng.com/blog/software/must-use-net-system-io-ports-serialport
我已修改我的测试器代码以访问基本流以发送/接收数据以防万一,但这并没有解决问题。
【问题讨论】: