[질문]시리얼 통신에서 수신이 ........
작업환경 : 델파이7
라우터를 Com1으로(serial cable) 연결하고 하이퍼 터미널로 접속을 하였습니다.
세팅은 기본세팅으로 기본값 복원으로 하구요..
(즉 비트/초 : 9600, 데이터 비트 : 8, 패리티: 업음, 정비비트 : 1, 흐름제어: 없음)
접속이 되어 신호가 잘 수신되었습니다.
근데 제가 CComport로 코딩한 것으로는 전혀 받아지지가 않았습니다.
물론 세팅도 같이 했습니다.
(사실 제공된 예제 그대로 임....)
ComPortRxChar 이벤트가 발생하지 않는 겁니다. 글쎄.. 쩝.
제가 사용한 코딩입니다.
--------------------------------------------------------------------
unit ComMainForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, CPort, CPortCtl;
type
TForm1 = class(TForm)
ComPort: TComPort;
Button_Open: TButton;
Button_Settings: TButton;
Panel1: TPanel;
Bt_Store: TButton;
Bt_Load: TButton;
ComLed1: TComLed;
ComLed2: TComLed;
ComLed3: TComLed;
ComLed4: TComLed;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
ComLed5: TComLed;
ComLed6: TComLed;
Label1: TLabel;
Label6: TLabel;
GroupBox1: TGroupBox;
Memo: TMemo;
GroupBox2: TGroupBox;
Edit_Data: TEdit;
NewLine_CB: TCheckBox;
Button_Send: TButton;
Button1: TButton;
procedure Button_OpenClick(Sender: TObject);
procedure Button_SettingsClick(Sender: TObject);
procedure Button_SendClick(Sender: TObject);
procedure ComPortOpen(Sender: TObject);
procedure ComPortClose(Sender: TObject);
procedure ComPortRxChar(Sender: TObject; Count: Integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button_OpenClick(Sender: TObject);
begin
if ComPort.Connected then
ComPort.Close
else
ComPort.Open;
end;
procedure TForm1.Button_SettingsClick(Sender: TObject);
begin
ComPort.ShowSetupDialog;
end;
procedure TForm1.Button_SendClick(Sender: TObject);
var
Str: String;
begin
Str := Edit_Data.Text;
if NewLine_CB.Checked then
Str := Str + #13#10;
ComPort.WriteStr(Str);
end;
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort.ReadStr(Str, Count);
Memo.Text := Memo.Text + Str;
end;
end.
-------------------------------------------------------
왜 그럴까요?
이유를 알수 있는 좋은 방법이 없을까요?
방법만이라도 알려주시면 감사하겠습니다....
그럼 즐프하세용.
보는게 확실 할거 같습니다.