为什么我写得串口通信程序的速度比较慢?

zyli88 2003-09-12 05:16:48
if (!PurgeComm(hFile,PURGE_RXCLEAR | PURGE_TXCLEAR )) return -1;

if(!SetCommMask(hFile, EV_RXFLAG)) return -2; //设定监视消息

//写操作
if (!WriteFile(hFile,pstrWrite,lWriteSize,&ulWriteNumber,NULL)) return -3;

//读操作
while (true)
{
WaitCommEvent(hFile,&dwEvtMask,NULL);
if (dwEvtMask==EV_RXFLAG)
{
if (!ClearCommError(hFile, &dwError,comstat)) return -4;
if (ReadFile(hFile,pstrRead,comstat.cbInQue,&ulReadNumber,NULL))
}

我用WaitCommEvent(hFile,&dwEvtMask,NULL);等待的事件是dcb中设的一个字符。
我用串口调试助手大概只要0.9秒就能接受到,可是我的程序需要1.7秒左右,这是为什么?
...全文
406 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyli88 2003-09-15
  • 打赏
  • 举报
回复
谢谢几位的回贴,可是问题还是没有解决
1。我用异步方式也试过,是一样的,在串口通讯本身,异步和同步的速度应该差不多
2。波特率是一样的,都是1200
我现在怀疑是我的modem初始化影响了速度
"AT&fe0y1&k0%c0s0=5s36=1s37=5s46=136\r";//初始化Modem的字符串
有哪位高手能帮忙呀?
benz600 2003-09-13
  • 打赏
  • 举报
回复
如果波特率不同,那么是接受肯定是不对的,我觉得主要问题是因为采用了同步方式。
如果采用异步方式应该很快,我作过类似的东西,没有问题的。
bileg 2003-09-12
  • 打赏
  • 举报
回复
up
AthlonxpX86 2003-09-12
  • 打赏
  • 举报
回复
你的时间是怎么测的?一般在发送第一个字节时,会有延时,每个机器的延时时间都不一样

还有你们的波特率一样吗?

另外你的程序是同步方式,效率和速度都很低下,这样不大好啊

2,640

社区成员

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

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