首页 > 解决方案 > 串行端口 Readbyte() 错误;它突然停止接收数据

问题描述

我的代码工作正常,但几秒钟后我没有从 ReadByte() 获得任何数据。在这个函数下有两个期望。我该如何解决?这是问题:https ://i.hizliresim.com/7aPGXN.png

我已经尝试过 ReadExisting() 但它立即为我提供了所有数据并且我不处理它们。

private void bluetooth_port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    int_verisi = bluetooth_port.ReadByte();

    textBox7.Text= int_verisi.ToString();
    byte_verisi = (byte) int_verisi;

    if ((byte_verisi & 0x0F) == 0)
    {
        //Mesafe Low Biti Çevirme
        byte_verisi_mesafe_lb = (byte) (byte_verisi >> 4);
        textBox1.Text = byte_verisi_mesafe_lb.ToString();
    }
    else if ((byte_verisi & 0x0F) == 0b00000001)
    {
        //Mesafe High Biti Çevirme
        byte_verisi_mesafe_hb = (byte) (byte_verisi & 0b11111110);
        textBox2.Text = byte_verisi_mesafe_hb.ToString();
    }
    else if ((byte_verisi & 0x0F) == 0b00000010)
    {
        //Servo Low Biti Çevirme
        byte_verisi_servo_lb = (byte)(byte_verisi >> 4);
        byte_verisi_servo_lb = (byte)(byte_verisi_servo_lb & 0b11011111);
        textBox4.Text = byte_verisi_servo_lb.ToString();
    }
    else if ((byte_verisi & 0x0F) == 0b00000100)
    {
        //Servo High Biti Çevirme
        byte_verisi_servo_hb = (byte)(byte_verisi & 0b11111011);
        textBox5.Text = byte_verisi_servo_hb.ToString();
    }

    mesafe_sensoru = (byte) (byte_verisi_mesafe_hb | byte_verisi_mesafe_lb);

    servo_aci = (byte)(byte_verisi_servo_hb | byte_verisi_servo_lb);

    textBox3.Text = mesafe_sensoru.ToString() + " cm";

    textBox6.Text = servo_aci.ToString() + " derece";
}

标签: c#

解决方案


推荐阅读