<font color=maroon><i>iie老师,请进----关于<b>串口</b>的问题</i&g

  • 主题发起人 主题发起人 cat.yy
  • 开始时间 开始时间
C

cat.yy

Unregistered / Unconfirmed
GUEST, unregistred user!
<font color=maroon><i>iie老师,请进----关于<b>串口</b>的问题</i></font>(5分)<br />iie老师:

您问我:速度为1200bps时,传输一个字节的时间

我想: 如果采用串行同步方式 是 8*(1/1200)秒,对吗?
 
要考虑校验位等辅助位吧?
 
iie兄:

我用Delphi的timer来控制对端口数据的<b>读</b>,如果timerX.interval的时间过长
会有数据丢失

现在还没有具体到工控机上,仍在“自发自收”,我用Timer1控制com1发送 用Timer2
控制com2接收;
timer1,timer2初始化 enabled := false;
在buttonXclick事件 这样写 ----
timer1.enabled := true;
sleep(500);
timer2.enabled := true;
sleep()是用来模拟延时的(我采用查循方式接收数据的,想用windows去管理)。
 
我记得timer好像不是真正线程的,所以我是不敢用sleep做模拟延时的,
你可以另外开一个线程实现串口的访问。
另外,FIFO缓冲会在一定程度上缓解数据丢失的问题。
 
关于我提的问题,同步串口的话当然是8位,所以这分应该给你自己加
不过异步的话就要考虑帧格式了,
 
iie兄:

谢谢你!
在新开的线程里 将全部的时间都用于对串口的查询 是吧
我回去学一学<b>线程</b>,明天再请教你

cat兄弟
 
哈哈,我一直偷听你们谈话呢,小猫真的成兄弟了 :)
 
我回来了----出差可真累!!!
最糟糕的是有5天没法学习----多线程还没看呢!

小猫:回来就结束你的帖子啊——by wjiachun
 
多人接受答案了。
 
后退
顶部