添加< STX和< ETX>代码的字符命令 [英] Adding <STX and <ETX> character commands to code
本文介绍了添加< STX和< ETX>代码的字符命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将文本开头(< stx>)和文本结尾(< etx>)命令添加到正在写入串口的文本? (即 serialPort1.Write(?01P00204 ##?);
)
我有完整的 serialPort1.Write
用记事本写的命令但是当我复制并粘贴到我的代码中时,这些字符从开头和结尾都消失了。
How do I add the start of text(<stx>) and end of text(<etx>) commands to the text being written to the serial port? (i.e. serialPort1.Write("01P00204##");
)
I have the full serialPort1.Write
command written in notepad but when I copy and paste into my code, those characters disappear from the beginning and end.
namespace SimpleSerial
{
public partial class Form1 : Form
{
// Add this variable
string RxString;
public Form1()
{
InitializeComponent();
}
private void buttonStart_Click(object sender, EventArgs e)
{
serialPort1 = new SerialPort("COM3");
serialPort1.PortName = "COM3";
serialPort1.BaudRate = 9600;
serialPort1.Parity = Parity.None;
serialPort1.DataBits = 8;
serialPort1.StopBits = StopBits.One;
serialPort1.Handshake = Handshake.None;
serialPort1.Open();
if (serialPort1.IsOpen)
{
buttonStart.Enabled = false;
buttonStop.Enabled = true;
textBox1.ReadOnly = false;
serialPort1.Write("01P00204##");
}
}
推荐答案
你甚至都没有尝试写这些字符。尝试类似
You are not even trying to write those characters. Try something like
const char stx = (char)2;
const char etx = (char)3;
//...
System.IO.Ports.SerialPort serialPort = new System.IO.Ports.SerialPort(/* ... */);
//...
serialPort.Write(stx);
//...
请参阅: https://en.wikipedia.org/wiki/ASCII [ ^ ]。
以防万一:请记住,在大多数情况下,为所有通信任务使用单独的线程非常重要。
这篇关于添加< STX和< ETX>代码的字符命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文