Курсовая работа: Создание измерительного аппаратно-программного комплекса термометра на основе микроконтроллеров семьи ATMEGA

);

Вызов этой функции очищает очередь приема/передачи и завершает все находящиеся в ожидании запросы ввода/вывода.

hFile — описатель открытого порта.

dwFlags — производимые действия в виде набора флагов PURGE_TXABORT, PURGE_RXABORT, PURGE_TXCLEAR, PURGE_RXCLEAR.

Пример на Delphi:

if not PurgeComm(hPort, PURGE_TXCLEAR or PURGE_RXCLEAR) then

raise Exception.Create('Error purging port');

На этом подготовительная фаза заканчивается, и можно приступать непосредственно к приему/передаче данных. Прием данных у нас будет происходить по событийной схеме; программа будет ожидать прием одного или нескольких символов (байт). Для перевода порта в этот режим необходимо вызвать функцию SetCommMask() с флагом EV_RXCHAR:

if not SetCommMask(hPort, EV_RXCHAR) then

raise Exception.Create('Error setting port mask');

Прием и передача данных выполняется функциями ReadFile() и WriteFile(), то есть теми же самыми функциями, которые используются для работы с дисковыми файлами. Вот их описание:

BOOL ReadFile(

HANDLE hFile,

LPVOID lpBuffer,

DWORD nNumberOfBytesToRead,

LPDWORD lpNumberOfBytesRead,

LPOVERLAPPED lpOverlapped

);

BOOL WriteFile(

HANDLE hFile,

LPCVOID lpBuffer,

DWORD nNumberOfBytesToWrite,

LPDWORD lpNumberOfBytesWritten,

LPOVERLAPPED lpOverlapped

);

hFile — описатель открытого порта.

lpBuffer — адрес буфера.

nNumberOfBytesToRead/nNumberOfBytesToWrite — число ожидаемых к приему или предназначенных для передачи байт.

lpNumberOfBytesRead/lpNumberOfBytesWritten — число фактически принятых или переданных байт.

К-во Просмотров: 432
Бесплатно скачать Курсовая работа: Создание измерительного аппаратно-программного комплекса термометра на основе микроконтроллеров семьи ATMEGA