添加< STX和< ETX>代码的字符命令 [英] Adding <STX and <ETX> character commands to code

查看:839
本文介绍了添加< 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 [ ^ ]。



以防万一:请记住,在大多数情况下,为所有通信任务使用单独的线程非常重要。



-SA


这篇关于添加&lt; STX和&lt; ETX&gt;代码的字符命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆