C#SerialPort控件接收数据错误 20

用SerialPort控件接收到的数据和用串口调试助手接收到的数据不同。。。。直接看用serialport.Read读出来的字节都与串口调试助手接到的十六进制转换的字节不... 用SerialPort控件接收到的数据和用串口调试助手接收到的数据不同。。。。直接看用serialport.Read读出来的字节都与串口调试助手接到的十六进制转换的字节不同。。。
//同步阻塞读取
private void synReceiveData(object serialPortobj)
{
rt = new returntext(receivedata);
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
SerialPort serialPort = (SerialPort)serialPortobj;
Thread.Sleep(0);
serialPort.ReadTimeout = -1;//等待数据时间 单位为毫秒
string str;
try
展开
 我来答
dcount10
2012-12-06 · TA获得超过301个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:403万
展开全部
通讯参数一致吗?波特率,校验等等。
read有好多种方式,一定要采用字节方式读取。
不妨把读出来的字节都与串口调试助手接到的十六进制转换的字节列出来看看。
更多追问追答
追问
参数是一致的。换成十六进制了的,数据还是对不上。。就第一个字节是对的,后面的就对不上了。。
追答
一般来说我都是在DataReceived事件中进行数据的接收,前提是每次接收的字节数都是一致的,那么只要设置ReceivedBytesThreshold属性即可。
津卫天海
2012-12-06 · TA获得超过191个赞
知道小有建树答主
回答量:72
采纳率:0%
帮助的人:81.7万
展开全部
看一下波特率,数据位数,停止位数,奇偶校验的设置是否一样
最可能是波特率的问题
如果都没问题试试ReadByte()读取一个字节看看
更多追问追答
追问
参数都是一样,试过ReadByte(),也不对。。。如果说是硬件问题的话,但是串口调试助手又能接收到正确的数据啊。。。
追答
你把代码补充一下吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luoyefenfei_so
2012-12-06 · 贡献了超过190个回答
知道答主
回答量:190
采纳率:0%
帮助的人:33.6万
展开全部
不知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式