我现在的程序要求在打开了串口之后,需要先往发送数据的脚上发送一个持续10毫秒的低电平,然后再往发送数据的脚上发送正常的数据。有谁可以告知一下吗?如何往串口的发送脚送出一个持续10ms的低电平?

解决方案 »

  1.   

    可以用CMSCom控件+计时器来来操作。
    首先,我说一下,我记不住串口电气是负逻辑还是正逻辑了,看你的问题,估计是负逻辑。第二,我不明白你到底是做这10MS来搞什么。如果是用来通讯的话,那么2和3你就不能用,5也不行。4和6可以利用一下,比如,你的外设不断扫描你的串口,感应到4、6(4、6那个是数据准备好我忘了)有一个电低超了10ms,就收数据。第三、你的外设的不断扫描也不过是一个采样,所以,看一下你的外设的采样频率是多少,徦设你的采样频率是2Hz/ns,那你的串口的持续低电的频率如果是<1HZ/ns,那么就可以采样,可以生成一个方波,做你感应到10ms低电的条件。
      

  2.   

    第四、也就是你的低电的生成问题,用多媒体计时器不断的做CMScom的事件,就可以了。
      

  3.   

    lovetsinghua(瞌睡♂工作虫) ,谢谢你在串口问题的耐心回答。
    情况是这样的,我已经打开了串口了,并且已经与外设建立好了连接(已经发送过数据到外设上并且成功收到了外设的返回数据),这时候,再发送其它的数据之前,要求先保证串口的发送脚保持持续10ms的低电平,之后再发送数据出去。这也就是你所说的扫描采样的一回事了。还有呀,在这里的通信中,只需要串口的发送脚和接收脚和地线,其它的脚都不需要。所以,只能是在发送脚上保持低电平。
      

  4.   

    是不是要跟I2C连啊,用数据脚只能用发数据来控制他的高低电平,而系统本身会在这些信号前后加上一些同步信号,所以是很难控制信号的时间的,如果可能的话,不用数据脚,而改用RTS或DTS,这两个脚可以直接控制他们的高低电平
      

  5.   

    呵呵呵,不是I2C啦。这个外设是老外做的,是一个庞然大物也。没办法了,只能按照人家的要求来实现了。所以呢,只能用数据脚,不能用其它的控制脚呀。我也为此事犯愁呀,因为数据线会自动的给你加上起止位,这样,就不能保证持续10ms的低电平呀。
      

  6.   

    你可以这样试一下,将COM设置成不用校验,不要停止位,然后用示波器看一下它的输出波形,如果没有起止位,就有门了,然后再根椐波特率算一下每个字节发送的时间,得出10ms要多少个字节,要10ms的低电平只要发几个0就行了
      

  7.   

    人是活的功能是死的没有实现不了的功能,你是用了几条线做如果是用三线,可用RTS或DTS让它控制其它线成低电平自己动手做一个转接口,你想怎么控制就按你的要求。
      

  8.   

    我早上想了一下(我现在的程序要求在打开了串口之后,需要先往发送数据的脚上发送一个持续10毫秒的低电平,然后再往发送数据的脚上发送正常的数据。有谁可以告知一下吗?如何往串口的发送脚送出一个持续10ms的低电平?)
    你如果是异步串行数据传送世界上没有这个标准,你的设备应是同步串行数据传送,这样的话只简单地把数据线低10MS,以后传数据还不能正常,应搞通同步的CP是哪一方产生的,一定要知道的,最好做一个转发器和PC机交换,如果不想做这转发器,在这说几个简单的方法 如在DOS或单片机实现我想不要说了,如在WINDOWS下实现因串行口可以控的线很多,不要原来的数据线,数据从其它的线输出或输入,在VB,VC下应全能实现的就是没有原来的方便,因其它线在VB,VC也就是在WINDOWS下全能检测和设置所以一定能用原来的串行口实现你的功能