串口接收数据出现问题,

当我发送的数据大于等于128时,接收到的数据就会被替换成63,而这63时parity replace中的值,图片说明百度没找到解决方法,只了解是奇偶校验异常引起的,
我的串口接收是这样写的:

 string str = serialPort1.ReadExisting().ToString();
                RX += str.Length;
                toolStripStatusLabel2.Text = "RX : " + Convert.ToString(RX);
                string a = "", b = "-";
                a = str;
                List<byte> l = Encoding.ASCII.GetBytes(a).ToList<byte>();
                byte[] data = l.ToArray();

                a = (BitConverter.ToString(data));

仿真时出现图片说明
实在没搞明白,在这里向大家求助

Encoding.ASCII.GetBytes(a)
这里不要用ascii,ascii不允许>128