问一下,串口通信中设置mscomm波特率9600,数据位8,停止位2,无校验。写成mscomm.setting:='9600,n,8,2'没问题吧
发送的是
MSCOMM1.OUTPUT=CHR(129)+CHR(129)+CHR(67)+CHR(0)+CHR(232)+CHR(3)+CHR(44)+CHR(4)
下面是我的接受程序
procedure Tmainfrm.MSComm1Comm(Sender: TObject);
var
        i,j:integer;
        xtemp : Olevariant;
        xScr : array of byte;
        xRecData :string;
begin
        i:=mscomm1.InBufferCount;
        case mscomm1.commEvent of
        comEvReceive:
        begin
        xtemp := mscomm1.Input;
        SetLength(xScr,i);
        xScr := xtemp;
        for j:=0 to i-1 do begin
         xRecData := xRecData +inttoHex(xScr[j],2);
        end;
        memo1.Text:=memo1.Text+xrecdata;
        end;
end;
end;
可是memo1.Text没有显示,但是我用串口调试助手测出来串口是好的,问一下会是那里出了问题。

解决方案 »

  1.   

    你的接收處理有問題!!!
    >>>> xScr := xtemp;
      

  2.   

    将readintervaltimeout等于1试一试!
      

  3.   

    串口通讯应用程序的解决方案: http://218.56.11.178:8020/web/technology/chuangkou.htm 例程源码及控件: http://218.56.11.178:8020/web/index.aspx->下载基地 ->例程-精品例程->九品御厨作品-串口通讯控制器 ->例程-硬件控制->串口通讯控制器 ->控件-硬件控制->TurboPower Async Professional/spcom
      

  4.   

    jpyc(九品御厨-进军嵌入式
    老大,我在你的网站上没发现有源码
      

  5.   

    saien(有问必答) 老大
    回答的太笼统了吧
      

  6.   

    TurboPower Async Professional 发送16进制的代码哪里有啊?