串口问题求助:有规律的数据丢失

weibing8572 2008-10-24 11:27:02
1.采集卡的采样率是300/s,我在程序缓冲区中接收到的数据长度为8,0,8,0这样间隔(缓冲区长度1024),数据结果在matlab中分析发现实际采 样为75/s,采集卡应该没有问题,也就是说数据每4个就丢了3个,找了半天十分郁闷,想请问高手:出现这样的可能原因有哪些?
dcb的参数
dcb.BaudRate = 9600;
dcb.fBinary = TRUE;
dcb.fParity = FALSE;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fOutX = FALSE;
dcb.fInX = FALSE;


2.串口通信一般一个字符是一位开始位,8位数据位,一位停止位共10位。为什么dcb.ByteSize 可以是4、5、6、7、8?感觉应该是8才对啊。
希望多多指点,谢谢
qq:791389262
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2008-10-26
  • 打赏
  • 举报
回复
采集卡的采样率是300/s
//采集卡和串口有什么关系?

为什么dcb.ByteSize 可以是4、5、6、7、8
//7位数据位的也常用,如果串口只用来传输ascii的话。同样的,4,5,6也可以存在,不过每个字节可以表示的范围会减少。
ilovedrv 2008-10-25
  • 打赏
  • 举报
回复
网上由一个很有名的串口类 cnComm,基本上能实现所有串口的功能,很好用
http://blog.csdn.net/wujian53/category/336981.aspx
zhstars 2008-10-25
  • 打赏
  • 举报
回复
1
可以这样试试,你让采集卡采集有规律的固定数据,然后通过已经有的串口调试程序如AccessPort等来接收,看看是否丢数据;如果采集卡没有问题,多半是你编程的问题了。
clbcy 2008-10-24
  • 打赏
  • 举报
回复
2
虽然计算机是以8b 1B为单位的,但是串口通信并不只发生在计算机身上,其它设备也可以用串口.听说有4位的单片机存在呢.
如果要传送的数据位数不要求8位之多,数据减少一些,也许还能提高传输效率

2,640

社区成员

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

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