Добрый день!!!вопрос немного не в тему...по програмированию в Delphi,а конкретно проблемы с компортом(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Maxon 09 декабря 2005 г. 12:38

Вобщем проблема такова...
Была написана програмка которая посылала и принимала данные из компорта...все прекрасно работает!!!НО...
но блин после перезагрузки Винды,даю команду открыть порт,установить параметры...короче пишет что всё окей,но ничего не посылает!!!
зато если перед моей програмой запустить какую-то терминалку типа ComPortTolking,послать любой байт и потом закрыть ее,и с моей проги посылать - всё просто супер!!!
Где тут зарыта собака?????????????????????????????????
код инициализации:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, XPMan;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
XPManifest1: TXPManifest;
Memo1: TMemo;
GroupBox1: TGroupBox;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
TrackBar1: TTrackBar;
Button4: TButton;
Button5: TButton;
Button6: TButton;
GroupBox2: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ComFile: THandle;
PolzunV :integer;
implementation

{$R *.dfm}
function OpenCOMPort: Boolean;
var
DeviceName: array[0..80] of Char;
begin
{ First step is to open the communications device for read/write.
This is achieved using the Win32 'CreateFile' function.
If it fails, the function returns false.

Wir versuchen, COM1 zu offnen.
Sollte dies fehlschlagen, gibt die Funktion false zuruck.
}
StrPCopy(DeviceName, 'COM1:');

ComFile := CreateFile(DeviceName,
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);

if ComFile = INVALID_HANDLE_VALUE then
Result := False
else
Result := True;
end;


function SetupCOMPort: Boolean;
const
RxBufferSize = 256;
TxBufferSize = 256;
var
DCB: TDCB;
Config: string;
CommTimeouts: TCommTimeouts;
begin
Result := True;
Config:='baud=19200 parity=n data=8 stop=1';

if not BuildCommDCB(@Config[1], DCB) then
Result := False;

if not SetCommState(ComFile, DCB) then
Result := False;

with CommTimeouts do
begin
ReadIntervalTimeout := 0;
ReadTotalTimeoutMultiplier := 0;
ReadTotalTimeoutConstant := 0;
WriteTotalTimeoutMultiplier := 0;
WriteTotalTimeoutConstant := 0;
end;

if not SetCommTimeouts(ComFile, CommTimeouts) then
Result := False;
end;


{
The following is an example of using the 'WriteFile' function
to write data to the serial port.

Folgendes Beispiel verwendet die 'WriteFile' Funktion, um Daten
auf den seriellen Port zu schreiben.
}


Составить ответ  |||  Конференция  |||  Архив

Ответы



Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru