Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 23.05.2013
Сообщений: 98

RS232 приём данных

28.01.2015, 16:10. Показов 1484. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
на ком порт приходят 10ричные числа, от 1 до 9 со знаком ? в начале т.е. (?1) (?2), итд
? означает начало приёма
этот код должен принять числа и вывести на экран по очереди
он выводит числа, но не те которые посланы в порт
C++
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <stdio.h>
#include <stdlib.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CommPort"
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
char ntoa(char n) {          // Ïðåîáðàçîâàíèå íèáëà â ASCII
  n=n&0x0f;
  if (n<0x0a) n+=48;     // 0x30
  else n+=55;             // 0x37
  return n;
}
 
void i2btoa(int n, char *mas) {   // Ïðåáðàçîâàíèå äâóõ áàéòîâ â ASCII
  for(int i=3; i>-1; i--) mas[i]=ntoa(n>>abs(4*(i-3)));
}
 
char aton(char c) {          // Ïðåîáðàçîâàíèå îäíîãî áàéòà â íèáë
  if(c<0x3A) c-=0x30;
  else  c-=0x37;
  if(c>0x0f) c=0;
  return c;
}
 
int a4btoi(char *mas) {      // Ïðåîáðàçîâàíèå ñòðîêè èç ÷åòûðåõ ASCII â int
  int n=0;
 
  for (int i=3; i>-1; i--) n+=aton(mas[i])<<abs(4*(i-3));
  return n;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
CommPort1->ComNumber=3;   //îáúÿâëåíèå ôèçè÷åñêîãî íîìåðà ïîðòà åãî ïåðåìåííîé
CommPort2->ComNumber=4;   //îáúÿâëåíèå ôèçè÷åñêîãî íîìåðà ïîðòà åãî ïåðåìåííîé
CommPort1->Open=true;     // îòêðûòü ïîðò ïåðåìåííîé 1
//CommPort2->Open=true;     // îòêðûòü ïîðò ïåðåìåííîé 2
 
 
if(CommPort1->Open==true) {             // åñëè ïîðò çàêðûò
 Label5->Caption="ïîðò îòêðûò";       // ôðàçà äëÿ âûâîäà
 Label5->Visible=true;                  // ðàçðåøåíèå âûâîäà
         }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button4Click(TObject *Sender)
{
CommPort1->Open=false;                  //  çàêðûòü ïîðò ïåðåìåííîé 2
//CommPort2->Open=false;                //  çàêðûòü ïîðò ïåðåìåííîé 2
 
if(CommPort1->Open==false) {             // åñëè ïîðò çàêðûò
 Label5->Caption="ïîðò çàêðûò";        // ôðàçà äëÿ âûâîäà
 Label5->Visible=true;                   // ðàçðåøåíèå âûâîäà
          }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CommPort1DataReceived(TObject *Sender, DWORD Count)
{
  char mas[5]; int a;
  AnsiString s="";
 
  while(CommPort1->InBuffUsed>1) {
 
      for(int i=0; i<4; i++) mas[i]=CommPort1->GetChar();       // ×òåíèå ïàêåòà èç áóôåðà ïðèåìà â ìàññèâ
      RData->Caption=IntToStr(a4btoi(mas));                     //  Îòîáðàæåíèå ïðèíÿòîãî ÷èñëà
  }
}
где ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2015, 16:10
Ответы с готовыми решениями:

Приём данных компонентом TBComPort в отдельном потоке
Добрый день, возник следующий вопрос: Имеется компонент для работы с COm портом, который принимает данные из UART по своему Event'у....

Как проследить за RS232
Как проследить за программой работающей с COM портом? Программа работает DOS режиме. PortMon все видит, но не подходит - нужно обработать...

Работа с RS232 (FT232R)
Доброго времени суток всем. Народ, укажите неграмотному как правильно работать с СОМ портами, как обмениваться данными с внешним...

1
3 / 3 / 3
Регистрация: 25.01.2015
Сообщений: 25
29.01.2015, 10:28
Какие настройки COM-порта, и соответствуют настройки портов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2015, 10:28
Помогаю со студенческими работами здесь

Нужна прога работающая с com-портом и Rs232
Прога должна видеть порты больше 9. И соответственно работать с ними

Обработать приём команды из микроконтроллера
Доброго времени суток, появилась задача, написать приёмник сообщений от микроконтроллера, как программу на ПК Например, контроллер...

Передача данных по rs232
Добрый день! Купили драйвер шагового двигателя DM556, в котором имеется порт rs232. Возникла необходимость написать небольшую софтинку,...

обработка данных с rs232
Здравствуйте, появилась пару недель назад задумка собрать на AVR-ке простейшую схему и по СОМ порту покидать данные, аппаратная часть...

Приём данных из ПК
Я немногожко запутался, и не знаю как реализовать следующее: Клиент который находится на ПК отправляет запрос на скрипт (пускай будет...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru