程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的?

开发过程中遇到C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的的问题如何解决?下面主要结合日常开发的经验,给出你关于C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的的解决方法建议,希望对你解决C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的有所启发或帮助;

我声明灯地址的代码:

 byte[] on = { 0xe8,0xff,0x00,0x02,0x04,0x82,0x01};
 byte[] off = { 0xe8,0x00 };

直到迭代两次,时间1是正确的地址,第二是不同的数字

 private voID Data_Received(object sender,serialDataReceivedEventArgs E)
        {
            int i;
            Thread.Sleep(10);
            rec_lend = serialPort1.bytesToRead;
            rxbyte = new byte[rec_lend];
            serialPort1.Read(rxbyte,rec_lend);
            for (i = 0; i < rxbyte.Length; i++)
            {
                
                rsPDAta.Enqueue(rxbyte[i]);
                messageBox.Show(i.ToString() + rsPDAta.ToArray());
            }

            this.Invoke((MethodInvoker)delegate
            {
                req_msg();
            });
        }
    
        
        public voID req_msg()
        {
            int i;
            if (rsPDAta.Count != 0)
            {
                byte[] messageReceive = new byte[rsPDAta.Count];
                int ghdata = rsPDAta.Count; 
                rec_msg = new byte[rsPDAta.Count];
               
                for (i = 0; i < 11; i++)
                {

                    rec_msg[i] = (bytE)(rsPDAta.Dequeue());
                    dataOUT +=  Convert.ToString(rec_msg[i],16);
                    
                    
                }
                
                if (rsPDAta.Count != 0)
                {
                    req_msg();
                }
            }
            tBoxDataIN.Text = dataOUT;
        }

我也不知道我卡在哪里,导致它像这样重复了 2 次。像我这样的学习者太难了

解决方法

试试这个,希望这段代码能帮到你:

private void SPDAtaReceived(object sender,serialDataReceivedEventArgs E)
    {
        serialPort serialPort = (serialPort)sender;
        String portName = serialPort.PortName;
        String str = serialPort.ReadExisTing();
        try
        {
            byte[] numArray = new byte[serialPort.bytesToRead];
            if (serialPort.Read(numArray,numArray.Length) <= 0)
                Console.WriteLine("No have data!");
            serialPort.Write(numArray,numArray.Length);
        }
        catch (Exception eX)
        {
            txtLog.AppendText("\r\n" + "SPDAtaReceived fail \n" + ex.ToString());// += ;
        }
    }
,

我又试了一次,数据还是返回了2次,是不是很长所以需要2次才能全部读完? 我的代码 C#:

private void serialPort1_DataReceived_1(object sender,serialDataReceivedEventArgs E)
    {
        int i;
        Thread.Sleep(10);
        // Read available bytes and check for presence of a end byte
        byte[] buffer = new byte[serialPort1.bytesToRead];
        serialPort1.Read(buffer,buffer.Length);
        receivedData.AddRange(buffer);
        for (i = 0; i < buffer.Length; i++)
        {
            rsPDAta.Enqueue(buffer[i]);
        }            
        this.Invoke((MethodInvoker)delegate
        {
            message();
        });
    }
    public void message()
    {
        int i;
        byte[] messageReceive = new byte[rsPDAta.Count];
        byte[] rec_message = new byte[rsPDAta.Count];
        for (i = 0; i < rsPDAta.Count; i++)
        {
            rec_message[i] =(bytE) rsPDAta.Dequeue();
            tBoxDataIN.Text += rec_message[i];
        }
        tBoxDataIN.Text += Environment.NewLine ;
    }

大佬总结

以上是大佬教程为你收集整理的C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的全部内容,希望文章能够帮你解决C#串口?我正在写关于读取我发送的com端口地址灯的代码,这是错误的所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: