Форум программистов, компьютерный форум, киберфорум
Наши страницы
КИП, датчики
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Nicolay
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 9
1

RS-232. Передача и прием данных

09.05.2013, 17:31. Просмотров 2358. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста. не опытному программисту в чем может быть проблема с этим кодом:
вставляю в форму не сохраняется((( буду очень благодарен Вам!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
unit Unit1;
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, DBCtrls, ActnList, Spin, Buttons, ToolWin,
  ImgList, TeEngine, Series, TeeProcs, Chart, TeeFunci, Grids, Calendar,
  mAPI,MPlayer;
 
type
    TForm1 = class(TForm)
    Label3: TLabel;
    Start_TxD: TButton;
 
    procedure FormCreate(Sender: TObject);
    procedure TxD_Serial_DATA;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Start_TxDClick(Sender: TObject);
 
  private
 { Private declarations }
 
 hCOM:tHandle;
 Stat:tCOMStat;
 Bytes:dWord;
 DataArrayByte:array[1..32] of byte;
 DataArrayChar:array[1..32] of AnsiChar;
 j_mass:Word; // движок по массиву
 
  public
    { Public declarations }
  end;
 
const
 Const_x=2;//Это пример, как задавать константы
var
 Form1: TForm1;
 implementation
{$R *.DFM}
 
//##############################################
Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ShowMessage('Позаботьтесь о сохранении файла данных');
  CloseHandle(hCOM);
end;
//##############################################
//############# ОТКРЫВАЕМ ФОРМУ 1 ##############
//##############################################
 procedure TForm1.FormCreate(Sender: TObject);
var
  DCB:tDCB;
  fSuccess:boolean;
 begin
  Stat.cbInQue:=0;
// открываем COM-port
  hCOM:=CreateFile('COM1',GENERIC_READ or GENERIC_WRITE,0,
                 nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if hCOM=INVALID_HANDLE_VALUE then begin
    ShowMessage('Не могу открыть порт');
    Application.Terminate;
  end;
// параметры COM-Port_a
  SetupComm(hCOM,8192,8192);
  EscapeCommFunction (hCOM, SETDTR);
  EscapeCommFunction (hCOM, SETRTS);
  try
    fSuccess:=GetCommState(hCOM,DCB);
    with DCB do begin
//      BaudRate:=115200;       //инициализация
      BaudRate:=9600;       //инициализация
      ByteSize:=8;          //последовательного
      Parity:=NoParity;     //порта
      StopBits:=OneStopBit; //
    end;
    fSuccess:=SetCommState(hCOM,DCB);
  except
    ShowMessage('Не удалось настроить порт');
  end;
end;
//##############################################
procedure TForm1.Start_TxDClick(Sender: TObject);
begin
TxD_Serial_DATA;
end;
//##############################################
Procedure TForm1.TxD_Serial_DATA;// транслируем в COM-port
var
n_byte:Byte; //число транслируемых байт
begin
 
// Формируем в массиве DataArrayChar сообщение: /Side_2/
//Char-символами, соответственно кодовой таблице Windows (CP-1251)
DataArrayByte[1]:=$30;
DataArrayByte[2]:=$31;
DataArrayByte[3]:= $32;
DataArrayByte[4]:= $33;
DataArrayByte[5]:=$60;
DataArrayByte[6]:=$78;
  j_mass:=1;
 for n_byte:= 1 to 6 do begin
  WriteFile(hCOM,DataArrayByte[j_mass],1,Bytes,nil);
  j_mass:=j_mass+1;
 end;
//В конце сообщения добавляем символ dec_13/CR(возврат каретки
//или конец строки)...
DataArrayByte[1]:=$0D;
WriteFile(hCOM,DataArrayByte[1],1,Bytes,nil);
end;
//##############################################
END.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2013, 17:31
Ответы с готовыми решениями:

Передача и прием сигналов c датчиков (температуры, влажности, задымленности) по электросети
Есть аналоговых 3 датчика (температуры , влажности, задымленности) при выходе значений из...

Управление генератором и получение данных с вольтметра по RS-232
товарищи!очень нужна ваша помощь, иначе на работе меня съедят) необходимо написать программу (в...

Погодные датчики с интерфейсом RS-232 в единую сеть (сбора данных)
Добрый день уважаемые Господа! В связи со строительством диспетчеризации в нашей компании, мне...

Передача данных с PIC16 по RS-232
Добрый день! Требуется передать результат вычислений по RS-232C (о приеме ничего не сказано),...

Прием сигнала по RS-232
Здравствуйте, специалисты, помогите пожалуйста разобраться с приемом по RS-232, пол дня потратил...

3
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
09.05.2013, 21:59 2
...что не сохраняется?
0
Nicolay
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 9
09.05.2013, 22:03  [ТС] 3
когда форму создаю процедура не срабатывают... мож я что не так делаю(
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
09.05.2013, 22:11 4
...в событии создания формы только попытка открыть порт COM1 и его настроить. О какой несрабатывающей процедуре речь?
0
09.05.2013, 22:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2013, 22:11

Одновременная передача и прием данных
Здравствуйте! При попытки передать и получить данные одновременно, возникает проблема, т.е. при...

Прием и передача данных в последовательный порт
Добрый день, отправляю вот так static void configDevSer(void){ struct termios...

Передача и прием данных по виртуальному COM порту
Доброе время ))) вот собрал девайс на основе FT232BL Вот отсылаю данные: private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru