发表于:2004-05-11 04:09:00
楼主
现在是凌晨4点,我已经奋战了一个通宵,还是没有结果。还有几天毕业设计就结束了,我是心急如焚。
我现在做的是通过电台采集数据,对方电台连接单片机.我做一个驱动程序,来实现采集数据.
我的电台是半双工通信,必须用RTS来控制收发.在通讯串口父设备的属性编辑页中,有对RTS的控制.在帮助中也有简单的相关说明,大概理解的差不多.
现在我利用MCGS开发向导生成了子设备的程序框架,编制了相应的收发代码.我利用485线(不控制RTS)和另外一台电脑连接起来,实现了收发,并在MCGS的界面上正常显示出来.
然后我换成电台连接,RTS置高100毫秒之后发数据200毫秒之后RTS置低,采集周期设为5秒钟.然而,我在另外一台电脑(做了VB的接收程序)却只能收到一次有效的数据,第二次就是乱码,或着根本什么都没有.
我用VB做了模拟MCGS采集数据的过程,用电台来实现,很方便,而且误码率较低.这说明电台没有问题.
然后我在485 正常显示的情况下,换成电台,依然收不到有效数据
我又在VB的驱动程序框架的环境下调试,这时,RTS一直是置高的,这是就能够收到有效的数据,此时是一直处于发状态,RTS没有置低。这说明数据可以发出来。
然而,为什么在MCGS环境下,我尽量把RTS置高时间延长,发送数据,5秒之后10置低RTS,依然只有第一次可以发出有效的数据,之后就不行了,这说明在第一次RTS置低,和第二次RTS置高,两次事件中产生了问题,使之后不能在发送数据
因为MCGS对串口父设备封装起来了,只提供了四个函数供用户编程调用,对RTS的设置不能用代码在驱动程序中搞,所以我请问这个RTS置高低,和输入输出函数的关系和对它的影响。
不能说MCGS软件有问题,但我实在找不出问题所在了。
请一定要帮帮我!
万分感谢!!!
niuxinglin@163.com