谢谢:artman(artman);
  1》   可不可以有方法自己来设置,
  2》,如果自己制定帧的格式,应如何来定?  是不是通过设置停止位,将停止位设为1或0来进行!

解决方案 »

  1.   

    你这样做有意义吗?为什么不用标准的1个起始位8数据位1停止位,一个不够用两个用n个,单片机端,PC机端约定好数据格式不就节了吗?我就是这样做了N个MCS_51程序和VC程序了!
      

  2.   

    分数已经加上了,可是扣了我3分的信誉。这是为什么啊?我没有要不加分啊?
    TO: Swallowdeng_cq(JustTalk),你说的有道理,可是我现在PC机上作的协议是为了和其它控制主机与从机的通信协议要相同。要不从机的处理就要有两种协议了。   另:是不是只有结贴才能给大家加分啊。或一次要全给满100分。
      

  3.   

    用段位结构啊,
    先声明一个段位结构,然后用
    a.b=c; c是一个char 形的数传进去之后,
    再传出来。 c=a.b。就OK了。
      

  4.   

    dengting(邓庭) :你好,但是C也是8位的啊?
    不太明白? 是否能说的明白一些,在传送BUFFER里,数据都是8位的,是不是?
      

  5.   

    8只是传送的一个字符而已。而你可以有自己的桢格式。比如10xxxxxx16。只要检测开头结尾。就知道一桢是否结束。其他位也可以加在桢里面。自己处理就可以了
      

  6.   

    re:delphihero
       要求一桢是11位,第2到9位是数据,第10位为特殊意义位,可在程序中读写。
    如:10000111101或10000111111。
      

  7.   

    re:mfc42d:
     delphihero
       要求一桢是11位,第2到9位是数据,第10位为特殊意义位,可在程序中读写。
    如:10000111101或10000111111。 
        第10位为1,表示数据为作为通信的地址。
        第10位为0,表示数据为普通的通信数据。
      

  8.   

    读写第9位不就是为了实现多机通讯吗,在
    VC中用CreateFile创建串口句柄后,可以用 GetCommState 来获得串口设置,
    再用 SetCommState 设置串口。
    发送地址时可将串口校验位设置为MARKPARITY,然后发送地址;
    发送数据时可将串口校验位设置为SPACEPARITY。
    即可实现多机通讯。
      

  9.   

    re:fbinfh,你说的对,
    但是如果对方发送时,采用MARKPARITY,发数据,SPACEPARITY送地址。
    那接收的PC机如何来接收第9位。?
      

  10.   

    re:fbinfh,你说的对
    但是如果对方发送时,采用MARKPARITY,发地址,SPACEPARITY送数据
    那接收的PC机如何来接收第9位。?
      

  11.   

    有几台PC机作为主机呢?
    下位机之间要互相通讯吗?
    或下位机要主动向PC发送数据吗?
      

  12.   

    re:fbinhf()
       多台下位机,一台主控机。
       下位机在往上位机发数据时,上位机要能识别到第九位是1或是0。