对于 Marlin 板,串口通信无法通过 .net 5 工作

Serial port communication not working via .net 5 for Marlin board

我正在尝试在 dotnet 5 和基于 Marlin 的打印机板之间建立一个简单的串行端口连接,它是 运行 微控制器的一些变体(LPC1768FBD100 https://www.arrow.com/en/products/lpc1768fbd100551/nxp-semiconductors)。

我可以使用其他工具打开与开发板的连接,发送“M503\n”命令并收到响应,我成功使用的工具是

所以我知道该板在 Linux 和 Windows 中都可以正常运行,但是当从 .net 尝试时,我还没有成功地从板上得到任何响应。我已经在 .net 5 中上传了一个简单的工具,它连接到串行端口并允许您发送/接收字符串,

https://github.com/devoctomy/SerialPortTester

我已经在 Windows 和 Linux 中测试了这段代码,相同的端口设置,没有响应。我还在 Arduino Uno 板上针对一个简单的回声程序 运行 测试了这段确切的代码,一切都按预期工作,但对于我来说,我无法从另一块板上得到任何东西。

我想知道这些其他应用程序正在做的串行通信是否有一些我不知道的事情。我使用的端口设置与在 Windows 中测试时在设备管理器中全面显示的端口设置相同,在 Linux.

中测试时也使用相同的设置

在 Linux 中,开发板显示为 ttyACM0,这也是我的 Arduino Uno 的安装方式。

有什么建议吗?我确定这不是“Marlin”问题,因为我测试过的其他工具中只有一个是专门针对 Marlin 的,而 Arduino 串行监视器是您所能获得的最基本的工具。我认为在 .net 代码中有些事情我没有做...

我也尝试过其他人的旧 .net 代码,它也没有从这个板得到响应,但是从我的 Arduino Uno 运行 回显程序。

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

我已经修改了我的测试代码以访问基本流以发送/接收数据以防万一,但这并没有解决问题。

好的,我明白了,我知道我错过了什么,

port.DtrEnable = true;

这修复了它,现在我正在接收数据并将数据发送到 Marlin 板。