Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
#1

Программирование последовательного порта. - C++

07.10.2010, 16:40. Просмотров 2714. Ответов 5
Метки нет (Все метки)

Здраствуйте. Помогите кто чем может в поиске литературы, исходников по программированию последовательного порта. Получил тему написать прогу "Программа-чат через последовательный порт".
Программу буду писать ТОЛЬКО НА СИ(не С++). Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 16:40     Программирование последовательного порта.
Посмотрите здесь:

C++ Файлы последовательного доступа
Visual C++ Как принять число из последовательного порта и отобразить его в edit_box?
Мониторинг последовательного порта Visual C++
WinAPI и Qt. Как реализовать выпадающий список для конфигурирования свойств последовательного порта C++ WinAPI
C++ Алгоритм последовательного поиска
Visual C++ Программирование Com порта в Microsoft Visual Studio 9.0 C++
C++ Файл последовательного доступа
C++ Файл последовательного доступа
C++ Linux Чтение из COM порта, При чтении из порта зависает read()
Программирование COM порта C++ Builder
C++ Файл последовательного доступа
C++ Builder Записать в файл f последовательного доступа N натуральных чисел. Получить в другом файле последовательного дос

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
12.10.2011, 16:23  [ТС]     Программирование последовательного порта. #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
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*Програма-чат через послідовний порт(для двох ПК)*/
 
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
char buf[250],buf2[250];
int com,com2;
void initcom1 () {
          /* налаштування поpту COM-1 на pоботу */
outportb(0x3f8,0x80);  /* пiдготовка до завантаження швидкостi */
outportb(0x3f8,0x60);  /* швидкiсть прийому-пеpедачi в 1200 бод */
outportb(0x3f9,0x00);  /* старший байт подiлювача частоти */
outportb(0x3fB,0x03);  /* бiтiв даних = 8
                  стоп-бiтiв = 1
                  тип паpностi невикоpистовуеться
                  поpти 2F8h i 2F9h в звичайному pежимi */
outportb(0x3fC,0x00); /* модем не викоpистовуеться */
outportb(0x3f9,0x00); /* забоpона всих пеpеpивань */
}
void initcom2 ()
 {
          /* налаштування поpту СОМ-2 на pоботу */
outportb(0x2f8,0x80);  /* пiдготовка до завантаження швидкостi */
outportb(0x2f8,0x60);  /* швидкiсть прийому-пеpедачi в 1200 бод */
outportb(0x2f9,0x00);  /* старший байт подiлювача частоти */
outportb(0x2fB,0x03);  /* бiтiв даних = 8
                стоп-бiтiв = 1
                тип паpностi невикоpистовуеться
                     поpти 2F8h i 2F9h в звичайному pежимi */
outportb(0x2fC,0x00); /* модем не викоpистовуеться */
outportb(0x2f9,0x00); /* забоpона всих пеpеpивань */
}
void gochat (){
char ch;
int z,k,i,dov;
i=0;
k=1;
z=0;
buf[0]=NULL;
buf2[0]=NULL;
do
 {
 if (k==21) 
{
   clrscr();
   k=1;
   gotoxy(1,23);
   printf("%s",buf);
   gotoxy(1,k);
   textcolor(3);
   printf("%s",buf2);
   k++;
}                  /*Приймач*/
  if(((inport(com))&1)!=0) /* пеpевipка на пpийнятi данi */
  {
   ch=inportb(com2);   /* читання пpийнятого бiту */
   buf2[z]=ch;
   z++;
   outport(com,0x20); /* пiдготовка для пpийому слiдуючого символу */
if (ch==13)
{
buf2[z-1]=NULL;
gotoxy(1,k);
textcolor(3);
printf("%s",buf2);
k++;
buf2[0]=NULL;
textcolor(2);
}
  }
                 /*Передавач*/
  if(kbhit())
  {
   ch=getch();
   gotoxy(i+1,23);
   printf("%c",ch);
   buf[i]=ch;
   i++;
   if (ch==13)
{
dov=i;
gotoxy(1,23);
clreol();
gotoxy(1,k);
printf("%s",buf);
buf[i+1]=13;
k++;
   for(i=0;i<=dov+1;i++)
{
do
     {
      outportb(com2,buf[i]);  /* занесення символу в поpт для пеpедачi */
     }
   while((inport(com) & 0x20)==0);
   delay(100);          /* затpимка, якщо буфеp пустий */
   if((inport(com) & 0x10)==1)
   printf("Обрив лінії!!!");
   buf[i]=NULL;
     }
     i=0;
     
   }
  }    
 } while(ch!=27);    /* Вихiд з програми по натисненнi ESC */
}
void main ()
{
 char ch;
 do
 {
 clrscr();
 gotoxy(30,10);
 printf("1.  Com 1\n");
 gotoxy(30,11);
 printf("2.  Com 2\n");
 gotoxy(30,12);
 printf("3.  EXIT\n");
 ch=getch();
 if (ch=='1')
  {
   com=0x3FD;
   com2=0x3F8;
   initcom1();
   clrscr();
   gochat();
  } else
 if (ch=='2')
  {
   com=0x2FD;
   com2=0x2F8;
   initcom2 ();
   clrscr();
   gochat ();
  } else
If(ch=='3')
{
Exit;
}
  }
  while(ch!='1' && ch!='2' && ch!='3');
}
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
12.10.2011, 17:09     Программирование последовательного порта. #3
ну на сколько я знаю для каждого устройства свои порты(тоесть для той же клавиатуры могут быть разные порты)
и следственно по идеи ты хочешь написать драйвер
в проинципе найди нужную документацию по оборудованию
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
12.10.2011, 17:18  [ТС]     Программирование последовательного порта. #4
Цитата Сообщение от Van111 Посмотреть сообщение
ну на сколько я знаю для каждого устройства свои порты(тоесть для той же клавиатуры могут быть разные порты)
и следственно по идеи ты хочешь написать драйвер
в проинципе найди нужную документацию по оборудованию
Нет, не драйвер, а чат для 2 ПК через COM-порт(RS-232)...
Программа уже готова, отлажена, уже тестировалась...Все норм работает. Выложил потому, что кто-то писал что такое сделать невозможно...
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,587
Записей в блоге: 12
12.10.2011, 17:35     Программирование последовательного порта. #5
Нет, не драйвер, а чат для 2 ПК через COM-порт(RS-232)...
а это типа шнур через два компа кинуть к портам и на порты данные посылать
schdub
2935 / 1279 / 237
Регистрация: 19.01.2009
Сообщений: 3,342
Завершенные тесты: 1
13.10.2011, 00:27     Программирование последовательного порта. #6
Цитата Сообщение от &Alex& Посмотреть сообщение
/*Програма-чат через послідовний порт(для двох ПК)*/
#include <dos.h>
Цитата Сообщение от &Alex& Посмотреть сообщение
Программа уже готова, отлажена, уже тестировалась...Все норм работает
А под каким ОСью тестировали? Как собирали бинарник и каким компилятором?
Yandex
Объявления
13.10.2011, 00:27     Программирование последовательного порта.
Ответ Создать тему
Опции темы

Текущее время: 20:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru