是关于汽车电子方面的应用,与车上电脑(ECU)通讯前有一个唤醒过程,需要先将TXD针高电位一段时间(比如350ms),之后再低电位一段时间(比如50ms),之后再高电位一段时间(比如100ms),请问一下如何在VC中实现这一过程。
试过用EscapeCommFunction(hCom,SETBREAK)和EscapeCommFunction(hCom,CLRBREAK)可以改变电位,但是BREAK后是串口中断,实现不了通讯。
查了一些资料没有找到好的方法,有人建议向串口发送0或1一段时间,这种方法可行么,有没有更好的方法么?
希望得到大家的帮助,多谢了!

解决方案 »

  1.   

    但是通讯的波特率在打开串口之后就已经配置了,而且程序需要遵照ISO14230协议,其中也已经规定的通讯的波特率为10400,这也是不能使用MSCOMM控件的原因,所以改波特率这样怕是不行的。
      

  2.   

    // ISO14230不了解,好像是专用于汽车行业的。
    // 那么请问一下,用TX唤醒设备是符合ISO14230标准的做法?
      

  3.   

    // 还是ISO14230中只规定了通讯协议,而无对唤醒等操作的定义?
      

  4.   

    多谢lfchen的回复!ISO14230中的协议包含了唤醒操作。从别的地方找了个图,基本说明了通讯的过程。现在做的是诊断仪的软件。实际上ISO14230有自己的物理层定义,串口的电位与其并不相同,但可以通过电位转换电路实现通讯,这是题外话了。但首先要实现的是对串口数据发送针的电平控制。
      

  5.   

    Baidu的度不能外链,看这个吧