我是自发自收测试,程序框架如下while(1)
{
TRACE("Write %d ",GetTickCount()); //在这里输出一个时间点 BOOL bWrite = pComPort->Write(buff,size); //向串口写入数据
if(bWrite)
{
pComPort->Read(buff,size); //读串口
TRACE("Read%d \n",GetTickCount()); //在这里输出一个时间点
}
}
通过两个时间点的比较发现,大概在1毫秒之内读写3~4次,然后就会消耗15个毫秒左右的时间然后再在
1毫秒之内读写3~4次,输出如下所示,请问这是什么原因?Write 101192000 Read 101192000
Write 101192000 Read 101192000
Write 101192000 Read 101192000
Write 101192015 Read 101192015
Write 101192015 Read 101192015
Write 101192015 Read 101192015
Write 101192015 Read 101192030
Write 101192030 Read 101192030
...
{
TRACE("Write %d ",GetTickCount()); //在这里输出一个时间点 BOOL bWrite = pComPort->Write(buff,size); //向串口写入数据
if(bWrite)
{
pComPort->Read(buff,size); //读串口
TRACE("Read%d \n",GetTickCount()); //在这里输出一个时间点
}
}
通过两个时间点的比较发现,大概在1毫秒之内读写3~4次,然后就会消耗15个毫秒左右的时间然后再在
1毫秒之内读写3~4次,输出如下所示,请问这是什么原因?Write 101192000 Read 101192000
Write 101192000 Read 101192000
Write 101192000 Read 101192000
Write 101192015 Read 101192015
Write 101192015 Read 101192015
Write 101192015 Read 101192015
Write 101192015 Read 101192030
Write 101192030 Read 101192030
...
解决方案 »
- 多线程的cstring内存泄漏问题
- 用MFC编写一个能显示图像数据的软件要怎么弄?
- 遍历指定文件夹下的所有文件和子文件夹,找到指定文件并返回路径
- 关于编译器的一个问题
- 新手,关于MFC中消息处理函数参数传递的问题?
- IBasicVideo::GetCurrentImage截到的图不能显示,请帮忙.
- Windows SDK 如何实现窗口重绘? 谢谢!!~~~
- 各位大侠,怎样写服务程序,需要那些基础知识,那里有资料下载,急切?
- 在VC下如何编写基于UDP协议的点对点的通信,有什么资料吗?
- 请教:VC6.0写的ActiveX 控件内线程的事件IE无法捕获问题
- 继续问高难度的问题???关于dll的
- CListCtr提问
CPU繁忙时IO读写的任务调度也会受到影响
例如你在发送时是否移动鼠标都会造成速率略有不同
能不能说的详细一点呢?我用串口精灵测试过,也有这种现象。
/////////////////////////////////
设备管理器中串口设置页面中的高级选项中可以关闭硬件FIFO缓冲。这会降低性能字节间超时是异步(多任务操作系统通常是异步的)操作系统的标志,设置太低会影响操作系统的性能,有可能导致其他任务堵塞,不要想着Windows操作系统能够匀速完成这种IO操作,因为这种操作系统建议你的程序都是异步的,根本不可能达到匀速,如果非要匀速的话,你可以用DOS,多任务的话可以用UCOSSII UcLinux之类