关于Remon Spekreijse编写的CserialPort类的问题,希望高手指教!!

sybook 2004-08-31 10:06:54
我是一个字符一个字符收的数据,收到后,放入一个二进制数组中,但是我收到的数据中有的字符变成了"?",不过,我在单步调试的时候,在Watch里看正确的字符显示为'1',错误的数据显示为 '? 少了一个单括号,是不是我读取的时候掉了!还是TimeOut
m_CommTimeouts.ReadIntervalTimeout = 1000;
m_CommTimeouts.ReadTotalTimeoutMultiplier = 1000;
m_CommTimeouts.ReadTotalTimeoutConstant = 1000;
m_CommTimeouts.WriteTotalTimeoutMultiplier = 1000;
m_CommTimeouts.WriteTotalTimeoutConstant = 1000;

设置的不对呀!还是数据格式不对呀!我的数据来的速率是4800 bit/s,还请高手指教!!
...全文
182 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sybook 2004-09-03
  • 打赏
  • 举报
回复
数据不对没关系,不过校验位为什么对了呢?这不久坏了吗!?为什么数据错但是校验位认为对了呢?
Pipi0714 2004-09-02
  • 打赏
  • 举报
回复
发送端一定正确?因为它是BYTE类型,不是char类型。所以当你发送的时候赋给它2,这面接收的为数值2,而不是字符2。
linshengfeng 2004-08-31
  • 打赏
  • 举报
回复
怎么关闭这个类打开的串口.
sybook 2004-08-31
  • 打赏
  • 举报
回复
波特率没变哪!而且,大多组数据都正确,很偶尔的有一组数据里有一两个,还是在大数据量的时候!大概都是在800字节左右的时候!在Watch里看正确的字符显示为'1',错误的数据显示为 '? 少了一个单括号,不知道怎么回事!是不是我的输入缓存不够大啊!输入缓存在哪里设?
AthlonxpX86 2004-08-31
  • 打赏
  • 举报
回复
回复人: zhangnanonnet(鱼欢) ( ) 信誉:166 2004-08-31 14:21:00 得分: 0
字符变了说明baudrate有可能不对啊.你检测一下连接的baudrate是不是正确

波特率不正确,不可能有接收到正确的字符,贴主的程序的现象只是有时不正确
zhangnanonnet 2004-08-31
  • 打赏
  • 举报
回复
字符变了说明baudrate有可能不对啊.你检测一下连接的baudrate是不是正确
AthlonxpX86 2004-08-31
  • 打赏
  • 举报
回复
TimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;
TimeOuts.ReadTotalTimeoutMultiplier = 0;
TimeOuts.ReadTotalTimeoutConstant = 0;
TimeOuts.WriteTotalTimeoutMultiplier = 50;
TimeOuts.WriteTotalTimeoutConstant = 2000;
看看这样的标准设置行不行
zhangshengyu 2004-08-31
  • 打赏
  • 举报
回复
up
sybook 2004-08-31
  • 打赏
  • 举报
回复
没有停止位,校验位是我自己加的呀!就是所有字符异或后得到的一个校验位!
casinosun 2004-08-31
  • 打赏
  • 举报
回复
停止位,校验位等设置对不对
sybook 2004-08-31
  • 打赏
  • 举报
回复
可能不可能是缓冲区不够大?可是我不知道在那里设输入缓冲区大小啊!

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧