设定控件属性:发送(接收)方式 :二进制model

解决方案 »

  1.   

    com235,谢谢你的建议,不过我已经在控件中设置了二进制属性,没有用.
      

  2.   

    你是不是使用的3根线的那种rs232连接电缆(接-收。地-地)?
    如果是使用的这种连接线,你换成0-modem的那种连接方式(多两个跳线),然后再试试。
      

  3.   

    squiffy,你好,谢谢.我的仪表是RS485通讯接口,有一个专用的232-485转换器,
    所以,没有办法更改内部接线.
      

  4.   

    问题太难了吗,还是高手们对MSCOMM不屑一顾?请各位兄弟帮帮忙!
      

  5.   

    波特率要一致,最好都用9600
    最好一个一个的发
                      char *g_SendBuf[4];
                      COleVariant var;
      g_SendBuf[0]=0xff;
    g_SendBuf[1]=0x02;
    g_SendBuf[2]=0x01;
    g_SendBuf[3]=0x00;
    var=((LPCSTR)(g_SendBuf));
    MsComm1.SetOutput(var);  
    MSCOMM控件的RThreshold=1
                SThreshold=1
                NullDiscard=FALSE
    我是用的text模式,这样要求不能有0试一下吧
      

  6.   

    谢谢二位的回复,我同意JANS的意见.事实上我已经通过WIN32API与仪表建立了连接,可以正常发送,不能正常接收,但是正如JANS所说.不能发太快,发一个,停一下.如果连续发送,仪表没有响应.波特率是一样的,什么原因我也说不清楚,还望高手能够解答.
    另外这几天我的转换器出了问题,试不了程序,改天试通了的话,一定给分!
      

  7.   

    谢谢jans,你的源码可以有效的发送二进制码,不过我是在换了一个RS232/485转换器之后才行的.在此也提醒各位有类似经历的朋友,问题可能是你的转换器.