为了使我的C#程序用作串行端口接口,我需要发送“ ENQ”并期望返回“ ACK”。

从我对本论坛先前问题的答复中所了解的内容,我认为系统希望我发送“ 5”并返回“ 6”(相当于ENQ和ACK的ASCII码)。
因此,我可以发送一个字符“ 5”而不是发送一个字符串“ ENQ”吗?

感谢您提供所有答案,这些答案指出C#中的'5'不是ASCII 5。
好的,我现在阅读评论,我将尝试:

serialPort.Write(new byte[]{5},0,1);

最佳答案

如果您使用的是SerialPort对象和WriteLine方法,请尝试以下操作:

SerialPort serialPort = ...;
...
string message = ((char) 5).ToString();
serialPort.WriteLine(message);


为了解决这些评论,您可以将SerialPort.NewLine属性更改为您的“结束发送”字符,在这种情况下,该字符可以是char 5。字符。如果您一直使用Write,然后需要编写char 5来结束您的消息,请考虑使用此路由。

关于c# - 如何在C#程序中发送ASCII字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1841528/

10-17 02:49