当前位置: 代码迷 >> C# >> 串口通信中 无法发送0x00的有关问题
  详细解决方案

串口通信中 无法发送0x00的有关问题

热度:9   发布时间:2016-05-05 03:34:09.0
串口通信中 无法发送0x00的问题
我用 serister 1.2 调试的 
发送出去一行数据 比如 byte[] data;
但是当数据中出现 0x00 或者0x0000等 serister就不接收了 从0x00(包含)开始全部不显示
这个问题该怎么撸?
串口大神快来 
------解决思路----------------------
你是给转字符串了吧?
字符串里0x00代表字符串结尾,后面的当然不显示了
你要循环byte数组,每个元素转字符串,不要整个字节数组转字符串

或者你这样转:
string strRes = BitConverter.ToString(bytes);
不要用System.Text.Encoding.Default.GetString转
------解决思路----------------------
for (int s = 7; s < rows+7; s++)                                        从这里开始就不能显示了 也可能是我的循环问题 ?????
                {
                    data[s] = (byte)(koki.ID << 8);
                    s++;
                    data[s] = (byte)koki.ID;
                }

for里不是已经s++了吗,循环里又++是要闹哪样
------解决思路----------------------
for (int s = 7; s < rows+7; s+=2)                                        从这里开始就不能显示了 也可能是我的循环问题 ?????
                {
                    data[s] = (byte)(koki.ID << 8);
                    data[s+1] = (byte)koki.ID;
                }
我猜你其实是想这样??
问题是你循环里一直都用koki.ID,这里不需要传入索引吗,你确定都用同一个值?
------解决思路----------------------
既然你旁边有个老头指点你,你平时跟他关系搞好点呗,在论坛上求方法效率是最低了