Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Com порт!

9.9K
17 февраля 2005 года
NAI
3 / / 17.02.2005
Какими командами можно обратиться к COM порту (чтение\запись и т.д.)?
Всякие там порты типа 3F9h и т.д. мне известны, а как с ентим работать не совсем ясно...

Т.е. проще говоря нужны стандартные(под DOS) комманды языка Си (++ не катит)!
243
18 февраля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by NAI
Т.е. проще говоря нужны стандартные(под DOS) комманды языка Си


Не бывает таких! В стандартах Си(как и Си++) нет встроенных операторов/функций работы с оборудованием. А всякие там outport() или inport() - это нестандартизированная самодеятельность фирм выпускающих компиляторы. Следовательно - читайте доки к вашему компилеру.
Или делайте под винду через стандартный WinAPI.

391
18 февраля 2005 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by NAI
Какими командами можно обратиться к COM порту (чтение\запись и т.д.)?
Всякие там порты типа 3F9h и т.д. мне известны, а как с ентим работать не совсем ясно...

Т.е. проще говоря нужны стандартные(под DOS) комманды языка Си (++ не катит)!



//
FILE *f;
char ch;

f = fopen ("com1", "rb");
ch = fgetc (f);
fclose (f);
//

По-моему самые стандартные комманды :)

259
18 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Archie


//
FILE *f;
char ch;

f = fopen ("com1", "rb");
ch = fgetc (f);
fclose (f);
//

По-моему самые стандартные комманды :)


А по прерываниям как?

ЗЫ Если блюсти стандарты, то нужно делать вставке на asm-е

9.9K
18 февраля 2005 года
NAI
3 / / 17.02.2005
Цитата:
Originally posted by AlexandrVSmirno

А по прерываниям как?

ЗЫ Если блюсти стандарты, то нужно делать вставке на asm-е



А что на счет команд outp и т.д.? Как я понял они работают почти на аппаратном уровне, посылам в определенный порт определенный бит(байт)!

Вот пример из программки зажинающей леды (лампочки) на клавиатуре! Немного переделанный пример из одной книги...

Код:
#include <stdio.h>
#include <conio.h>

void main(void)
{
outp(0x60,0xed); //??? "используйте команду 0EDh" ???
outp(0x60,7);    //посылаем в порт 60h байт условно означающий зажечь все леды

printf("Прес эни кей");
getch();

outp(0x60,0xed);
outp(0x60,0);
}


Вопрос в том, можно ли нечто подобное использовать для работы с COM?
259
18 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by NAI


А что на счет команд outp и т.д.? Как я понял они работают почти на аппаратном уровне, посылам в определенный порт определенный бит(байт)!

Вот пример из программки зажинающей леды (лампочки) на клавиатуре! Немного переделанный пример из одной книги...

Код:
#include <stdio.h>
#include <conio.h>

void main(void)
{
outp(0x60,0xed); //??? "используйте команду 0EDh" ???
outp(0x60,7);    //посылаем в порт 60h байт условно означающий зажечь все леды

printf("Прес эни кей");
getch();

outp(0x60,0xed);
outp(0x60,0);
}


Вопрос в том, можно ли нечто подобное использовать для работы с COM?


На самом деле это макрос для реализации соответсвующих команд asm-a. В принципе их можно использовать, и работают они хорошо, но как метко заметил pacific_7 не стандарт. У ms c и у borland c они по моему отличаются.

391
18 февраля 2005 года
Archie
562 / / 03.02.2005
Если нужно просто переслать "пару байтов", то зачем с прерываниями заморачиваться? К тому же под NT-виндами никакие шутки с outp () не прокатят и в железный порт ничего не выдастся.
259
18 февраля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Archie
Если нужно просто переслать "пару байтов", то зачем с прерываниями заморачиваться? К тому же под NT-виндами никакие шутки с outp () не прокатят и в железный порт ничего не выдастся.


Вопрос был про DOS

391
18 февраля 2005 года
Archie
562 / / 03.02.2005
Цитата:
Originally posted by AlexandrVSmirno

Вопрос был про DOS


Ну, дык, если кто-то еще в чистом досе работает... то большой ему привет! :)

9.9K
18 февраля 2005 года
NAI
3 / / 17.02.2005
Цитата:
Originally posted by Archie

Ну, дык, если кто-то еще в чистом досе работает... то большой ему привет! :)



Препод у меня работает как ДОС... но это уже оффтоп!!!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог