c#上位机与单片机通信,上位机接收不到单片机返回的数据

我遇到的问题是:

1上位机给单片机发送数据,单片机能接收到,但是单片机返回的数据上位机收不到

2我不用单片机,直接把数据线上的TX、RX短接,再用上位机发送数据,这时 上位机显示区就能显示上位机发送的数据;

3我用串口调试助手调试单片机程序,调试助手能正常接收单片机返回的数据;

以上3个问题,很是矛盾,不知道哪里出问题了,请高手帮助一下!

asc码接收,十六进制接收不行,上位机编码

曾经写过的一个,接收函数就是这个,你可以试试

 private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            string serialReadString;
            byte[] data = new byte[100];
            int count = 0;

            try
            {
                count = serialPort1.BytesToRead;
                serialPort1.Read(data, 0, serialPort1.BytesToRead);
                serialReadString = Encoding.ASCII.GetString(data, 0, count);
            }
            catch
            {
                serialPort1.Close();
                MessageBox.Show("请连接下位机", "提示");
                return;
            }

        }