Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Инициализация Com-port.

Ядро МК C8051FO64 | Внешняя память XRAM | Входные усилители | Микросхема моста USB-UART | Интегрированная среда разработки фирмы SiLabs IDE 2. | Ассемблер, компилятор и линкер интегрированной среды разработки Keil | Библиотека WIN32 API функций | Windows-приложение OGView | Обобщенная схема алгоритма. | Характеристика дочерних окон. Элементы управления. |


COM-порты в Windows аналогичны файлам и могут быть задействованы с использованием тех же функций, что и файлы - CreateFile, ReadFile, WriteFile, CloseHandle. Однако в программе используются функции, специфичные для COM-порта в Win32 API – GetCommState, SetCommState.

 

HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile );

Функция CreateFile открывает или создает файл, файловый поток, директорию, физический диск, раздел, консольный буфер или коммуникационный ресурс. В случае успеха функция возвращает хендл объекта для доступа к нему.

lpFileName – полное имя открываемого файла

dwDesiredAccess – доступ к объекту (чтение, запись или и то, и другое)

dwShareMode – режим разделения доступа к ресурсу

lpSecurityAttributes – указатель на структуру, определяющую возможность наследования хэндла на ресурс дочерними процессами

dwCreationDisposition – действие, которое следует выполнить если ресурс существует или не существует

dwFlagsAndAttributes – атрибуты и флаги файла

hTemplateFile –должен быть NULL

 

BOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped );

Функция ReadFile читает данные из файла, начиная с позиции, на которой находится указатель на файл. Может быть использована как для синхронного, так и для асинхронного чтения. В данной программе используется второй вариант.

hFile – хэндл файла, из которого производится чтение

lpBuffer – указатель на буфер, в который будет производиться чтение.

nNumberOfBytesRead – количество байт для чтения из файла

lpNumberOfBytesread – указатель на переменную, куда будет записано количество прочитанных байт

lpOverlapped – указатель на структуру, используемую при асинхронном вводе/выводе.

 

BOOL WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped );

Функция WriteFile записывает данные в файл, начиная с позиции, на которой находится указатель на файл. Может быть использована как для синхронной, так и для асинхронной записи. Как и в случае с ReadFile, WriteFile используется для асинхронной записи.

hFile – хэндл файла, в который будет производиться запись

lpBuffer – указатель на буфер, содержащий данные для записи

nNumberOfBytesRead – количество байт для записи в файл

lpNumberOfBytesread – указатель на переменную, куда будет записано количество записанных байт

lpOverlapped – указатель на структуру, используемую при асинхронном вводе/выводе.

 

BOOL CloseHandle(HANDLE hObject );

Функция CloseHandle закрывает открытый хэндл объекта.

hObject – закрываемый хэндл.

 

BOOL GetCommState(HANDLE hFile, LPDCB lpDCB );

Функция получает информацию о настройках выбранного коммуникационного устройства.

hFile – хэндл устройства

lpDCB – указатель на DCB-структуру, куда будет записана полученная информация.

 

BOOL SetCommState(HANDLE hFile, LPDCB lpDCB );

Функция настраивает выбранное коммуникационное устройство в соответствии с DCB-структурой.

hFile – хэндл устройства

lpDCB – указатель на DCB-структуру для получения настроек.

 

typedef struct _DCB {

DWORD BaudRate;

BYTE ByteSize;
BYTE Parity;
BYTE StopBits;

};

DCB-структура определяет настройки последовательного коммуникационного устройства. Здесь приведены лишь поля структуры, использованные в проекте.

BaudRate – скорость, на которой работает коммуникационное устроство, в бодах.

ByteSize – количество битов в принятых и переданных байтах.

Parity – настройка четности. Может быть одним из заранее предустановленных значений.

StopBits – количество используемых стоповых битов.

 

Общая схема работы с COM-портом такова:

- Порт открывается для чтения и записи при помощи функций ReadFile и WriteFile.

- Настройки COM-порта сохраняются в DCB-структуре при помощи функции GetCommState.

- В настройки вносятся необходимые изменения, после чего при помощи функции SetCommState структура используется для перенастройки COM-порта.

- При помощи функций WriteFile и ReadFile осуществляется обмен данными между ПК и МК.

- Хэндл COM-порта закрывается при помощи функции CloseHandle.

 


Дата добавления: 2015-07-16; просмотров: 106 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Описание протокола RS232.| Организация настроек Com-port в графическом интерфейсе.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)