serialPort返回的数据错误

						intCount = SMLSP.BytesToRead; //获取缓冲区字节数 
                        if (intCount > 0)
                        {
                            bytReceivedArr = new byte[intCount]; //定义接收数组的大小
                            SMLSP.Read(bytReceivedArr, 0, intCount);
                            bytCustomBuffer.AddRange(bytReceivedArr); //接收数据存入缓冲区
                            IntBytBufferLength = bytCustomBuffer.Count;

这几段代码一直挺好用,但是现在遇到了一点点的问题。在进行串口通信时,使用自己的软件时发现返回的字节数组总是不对,某些固定的数的位置是别的错误的值,使用别人的通信软件返回的数据却是正确的。监控串口发现发出去的报文也是一致的,只有返回的值不一样。表又是没有任何问题的,那可能是串口线的问题。然后,换了根线果然好了,再查发现别人用的不是serialport类。自己猜测这个serialPort类可能有一些自己的问题吧,以至于用同一根线,发同样的数据,回的数据就是错误的。

找到问题了

                    SMLSP.DtrEnable = true;
                    SMLSP.RtsEnable = true;

将serialport类对象添加这两句就正确了。???啥原因嘞

数据终端准备好 DTR(Data Terminal Ready)。请求发送 RTS(Request To Send)。

常见相关问题:

1、载波检测 DCD(Data Carrier Detect)

2、接收数据 RXD(Received Data)

3、发送数据 TXD(Transmit Data)

4、信号地 SG(Signal Ground)

5、数据准备好 DSR(Data Set Ready)

6、清除发送 CTS(Clear To Send)

7、振铃提示 RI(Ring Indicator)

对于RTS和dtr理解
这里有个例子 :例子

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值