串口发送数据延时问题

wxdcxp 2009-12-22 02:10:00
我现在有8192字节的数据要发送的串口,每次发送四个字节。串口的波特率是115200

放在一个for循环里那么它会不断的把数发送出去,现在因为发数太快,下边的机器可能会来不及接受数据导致有些数据没法写入进去,我要求是发每个数之间要有个的延时,但是我用Sleep(100)发现程序就跟死了一样。大家有什么好的方法或者建议
另外延时应该设置多少才合适?
以下是部分程序


aniSent =(AnsiString)"tpvset_Address"+" "+(AnsiString)Address+" "+"0x"
+EEPromVal1+EEPromVal2+EEPromVal3+EEPromVal4+"\r\n";
MSComm1->Output = StringToOleStr(aniSent);
Sleep(100);
...全文
1064 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxdcxp 2009-12-22
  • 打赏
  • 举报
回复

void __fastcall TForm1::System_Delay_MS(DWORD dTime)
{
DWORD MK = GetTickCount();
while((GetTickCount()-MK)<=dTime)
{
Application->ProcessMessages();
Sleep(1);
}
}



已经解决了调用,上面的延时函数就可以了。
肆水東澤 2009-12-22
  • 打赏
  • 举报
回复

不好意思,忘记了。
以前记得用API函数发,有个参数,就是设置字节间的延迟时间的。
hnzlk 2009-12-22
  • 打赏
  • 举报
回复
与延时没有关系,你数据量大的话,又不想界面卡死的话,就用多线程吧。

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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