Здравствуйте, ArtSh, Вы писали:
AS>Здравствуйте, kai62, Вы писали:
AS>Если Вы решили писать все сами, то тогда надо разобраться в програмных тонкостях. AS>COM порт представляет собой (с програмной точки зрения) 7 смежных адресов ввода-вывода, причем некоторые(в зависимости от установленных бит) играют разную роль. Так смещение 0 — THR/RBR, при DLAB = 0, и DLL при DLAB = 1; AS>THR — промежуточный регистр передатчика(соответственно при записи), AS>RBR — буферный регистр принимаемых данных(соответственно при чтении), AS>DLL — регистр младшего байта делителя частоты. AS>DLAB — 7 бит регистра со смещением 2(FCR).
AS>Кроме того, необходимо анализировать ошибки, возникающие при передаче/приеме, так если Вы попробуете прочитать из порта, к которому ничего не подключено, или не совпадают частоты передачи данных, то Вы увидите 0xFF, и код ошибки в соответствующем регистре .... AS>Так что будте очень внимательны, и прочитайте какую нибудь книгу про компьютерное железо, или воспользуйтесь стандартным драйвером, по моему, очень тяжело найти задачу, с COM портом, которую нельзя было бы решить в user-mode
Здравствуйте!
Все тонкости работы с СОМ-портом мне известны.
Под ДОС у меня все работает нормально!
Ведь все дело в том, что под в драйвере под WINDOWS при чтении любого регистра в диапазоне 3f8-3ff я получаю ff, хотя, к примеру, исходное состояние регистра статуса линии 0х60.
Тут по моему все дело в ACPI, оно отключает питание портов, и каким то образом надо его заставить сделать обратное.