PC інтерфейс, використовуючи В.Б.

N

Nimish

Guest
Ви можете побачити це підручник для PC інтерфейс, використовуючи В.Б.
http://lcdinterfacing.googlepages.com

 
Гарне сторінку!Спасибі р.Nimish!Існує багато відповідей.

 
Тут Б. взаємодії ай
Вибачте, але Ви повинні увійти, щоб переглянути це вкладення

 
це спілкування за допомогою послідовного або паралельного USB?

 
Ви маєте уявлення про взаємодію паралельного порту використовуючи vb.net?

 
Три цей код
Послідовною і паралельної

Код:Option Strict On'Визначити CommException клас, успадкований від ApplicationException класу.

"Тоді кинути об'єкт типу CommException, коли ви отримуєте повідомлення про помилку.

Клас CommException

Inherits ApplicationException

Sub New (ByVal Причина As String)

MyBase.New (розум)

End Sub

End ClassМодуль Module1

'Оголошення структур

Громадська структура DCB

Громадське DCBlength Як Int32

Швидкість передачі даних громадської Як Int32

Громадське fBitFields Як Int32

Громадське wReserved Як Int16

Громадське XonLim Як Int16

Громадське XoffLim Як Int16

Громадське ByteSize As Byte

Громадське Паритет As Byte

Громадське StopBits As Byte

Громадське XonChar As Byte

Громадське XoffChar As Byte

Громадське ErrorChar As Byte

Громадське EofChar As Byte

Громадське EvtChar As Byte

Громадське wReserved1 Як захищені Int16; Не використовуйте

Кінець СтруктураCOMMTIMEOUTS громадської структури

Громадське ReadIntervalTimeout Як Int32

Громадське ReadTotalTimeoutMultiplier Як Int32

Громадське ReadTotalTimeoutConstant Як Int32

Громадське WriteTotalTimeoutMultiplier Як Int32

Громадське WriteTotalTimeoutConstant Як Int32

Кінець Структура'Оголошення констант.

Громадська Уст GENERIC_READ Як Int32 = і H80000000

Громадська Уст GENERIC_WRITE Як Int32 = і H40000000

Громадська Уст OPEN_EXISTING Як Int32 = 3

Громадська Уст FILE_ATTRIBUTE_NORMAL Як Int32 = і H80

Громадська Уст NOPARITY Як Int32 = 0

Громадська Уст ONESTOPBIT Як Int32 = 0'Оголошення посилань на зовнішні функції.

Громадське Оголосити Авто Функція CreateFile Lib "kernel32.dll" _

(ByVal lpFileName As String, ByVal dwDesiredAccess Як Int32, _

ByVal dwShareMode Як Int32, ByVal lpSecurityAttributes As IntPtr, _

ByVal dwCreationDisposition Як Int32, ByVal dwFlagsAndAttributes Як Int32, _

ByVal hTemplateFile As IntPtr) As IntPtrОголосити громадської функцією автоматичного GetCommState Lib "kernel32.dll" (ByVal nCid As IntPtr, _

ByRef lpDCB Як DCB) як булевіОголосити громадської функцією автоматичного SetCommState Lib "kernel32.dll" (ByVal nCid As IntPtr, _

ByRef lpDCB Як DCB) як булевіОголосити громадської функцією автоматичного GetCommTimeouts Lib "kernel32.dll" (ByVal hFile As IntPtr, _

ByRef lpCommTimeouts Як COMMTIMEOUTS) як булевихОголосити громадської функцією автоматичного SetCommTimeouts Lib "kernel32.dll" (ByVal hFile As IntPtr, _

ByRef lpCommTimeouts Як COMMTIMEOUTS) як булевихОголосити громадської функцією автоматичного WriteFile Lib "kernel32.dll" (ByVal hFile As IntPtr, _

ByVal lpBuffer As Byte (), ByVal nNumberOfBytesToWrite Як Int32, _

ByRef lpNumberOfBytesWritten Як Int32, ByVal lpOverlapped As IntPtr) як булевихОголосити громадської функцією автоматичного ReadFile Lib "kernel32.dll" (ByVal hFile As IntPtr, _

ByVal lpBuffer As Byte (), ByVal nNumberOfBytesToRead Як Int32, _

ByRef lpNumberOfBytesRead Як Int32, ByVal lpOverlapped As IntPtr) як булевихОголосити громадської функцією автоматичного CloseHandle Lib "kernel32.dll" (ByVal hObject As IntPtr) як булевихSub Main ()'Оголошення локальних змінних, які ви будете використовувати в коді.

Dim hSerialPort, hParallelPort As IntPtr

Dim успіху як булеві

Dim MyDCB Як DCB

Dim MyCommTimeouts Як COMMTIMEOUTS

Dim BytesWritten, ВуЬезКеай Як Int32

Dim Buffer () As Byte'Оголошення змінних, що використовуються при кодуванні.

Dim oEncoder в якості нової System.Text.ASCIIEncoding

Dim oEnc Як System.Text.Encoding = oEncoder.GetEncoding (1252)"Конвертувати String в байт ().

Buffer = oEnc.GetBytes ("Test")Пробувати

'Послідовний порт.

Console.WriteLine ("Одержання доступу до послідовного порту COM1")

'Отримання дескриптора послідовного порту COM1.

hSerialPort = CreateFile ("COM1", GENERIC_READ Або GENERIC_WRITE, 0, IntPtr.Zero, _

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, IntPtr.Zero)

"Перевірити, що отримані ручка в силі.

Якщо hSerialPort.ToInt32 = -1 Then

Throw Нові CommException ("Неможливо отримати дескриптор порту COM1")

End If

'Отримання поточних параметрів керування.

Success = GetCommState (hSerialPort, MyDCB)

Якщо Success = False Тоді

Throw Нові CommException ("Неможливо отримати поточні налаштування управління")

End If

"Змінити властивості отриманої структури DCB в міру необхідності.

'ПОПЕРЕДЖЕННЯ: Переконайтеся, що для зміни властивостей в залежності від їх підтримуваних значень.

MyDCB.BaudRate = 9600

MyDCB.ByteSize = 8

MyDCB.Parity = NOPARITY

MyDCB.StopBits = ONESTOPBIT

'Перенастроювання COM1, засновані на властивостях зміненої структури DCB.

Success = SetCommState (hSerialPort, MyDCB)

Якщо Success = False Тоді

Throw Нові CommException ("Не вдається виконати перенастроювання порту COM1")

End If

'Отримання поточних параметрів часу очікування.

Success = GetCommTimeouts (hSerialPort, MyCommTimeouts)

Якщо Success = False Тоді

Throw Нові CommException ("Неможливо отримати поточні налаштування тайм-аут")

End If

"Змінити властивості отриманої COMMTIMEOUTS структури в міру необхідності.

'ПОПЕРЕДЖЕННЯ: Переконайтеся, що для зміни властивостей в залежності від їх підтримуваних значень.

MyCommTimeouts.ReadIntervalTimeout = 0

MyCommTimeouts.ReadTotalTimeoutConstant = 0

MyCommTimeouts.ReadTotalTimeoutMultiplier = 0

MyCommTimeouts.WriteTotalTimeoutConstant = 0

MyCommTimeouts.WriteTotalTimeoutMultiplier = 0

'Перенастроювання параметрів часу очікування, засновані на властивостях зміна структури COMMTIMEOUTS.

Success = SetCommTimeouts (hSerialPort, MyCommTimeouts)

Якщо Success = False Тоді

Throw Нові CommException ("Не вдається виконати перенастроювання параметрів часу очікування")

End If

'Запис даних у порт COM1.

Console.WriteLine ("Запис наступних даних в порт COM1: тест")

Success = WriteFile (hSerialPort, буфера Buffer.Length, BytesWritten, IntPtr.Zero)

Якщо Success = False Тоді

Throw Нові CommException ("Не можу записати в COM1")

End If

'Читання даних з порту COM1.

Success = ReadFile (hSerialPort, буфера BytesWritten, ВуЬезКеай, IntPtr.Zero)

Якщо Success = False Тоді

Throw Нові CommException ("Неможливо прочитати з порту COM1")

End If

Catch колишніх як виняток

Console.WriteLine (Ex.Message)

Врешті-решт

'Звільнення дескриптора порту COM1.

Success = CloseHandle (hSerialPort)

Якщо Success = False Тоді

Console.WriteLine ("Не вдається звільнити ручку COM1")

End If

End TryПробувати

'Паралельного порту.

Console.WriteLine ("Одержання доступу до паралельного порту LPT1")

'Отримання дескриптора паралельного порту LPT1.

hParallelPort = CreateFile ("LPT1", GENERIC_READ Або GENERIC_WRITE, 0, IntPtr.Zero, _

OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, IntPtr.Zero)

"Перевірити, що отримані ручка в силі.

Якщо hParallelPort.ToInt32 = -1 Then

Throw Нові CommException ("Неможливо отримати дескриптор порту LPT1")

End If

'Отримання поточних параметрів керування.

Success = GetCommState (hParallelPort, MyDCB)

Якщо Success = False Тоді

Throw Нові CommException ("Неможливо отримати поточні налаштування управління")

End If

"Змінити властивості отриманої структури DCB в міру необхідності.

'ПОПЕРЕДЖЕННЯ: Переконайтеся, що для зміни властивостей в залежності від їх підтримуваних значень.

MyDCB.BaudRate = 9600

MyDCB.ByteSize = 8

MyDCB.Parity = NOPARITY

MyDCB.StopBits = ONESTOPBIT

'Перенастроювання порту LPT1 на властивості MyDCB.

Success = SetCommState (hParallelPort, MyDCB)

Якщо Success = False Тоді

Throw Нові CommException ("Не вдається виконати перенастроювання порту LPT1")

End If

'Перенастроювання порту LPT1 згідно властивостям зміненої структури DCB.

Success = GetCommTimeouts (hParallelPort, MyCommTimeouts)

Якщо Success = False Тоді

Throw Нові CommException ("Неможливо отримати поточні налаштування тайм-аут")

End If

"Змінити властивості отриманої COMMTIMEOUTS структури в міру необхідності.

'ПОПЕРЕДЖЕННЯ: Переконайтеся, що для зміни властивостей в залежності від їх підтримуваних значень.

MyCommTimeouts.ReadIntervalTimeout = 0

MyCommTimeouts.ReadTotalTimeoutConstant = 0

MyCommTimeouts.ReadTotalTimeoutMultiplier = 0

MyCommTimeouts.WriteTotalTimeoutConstant = 0

MyCommTimeouts.WriteTotalTimeoutMultiplier = 0

'Перенастроювання параметрів часу очікування, засновані на властивостях зміна структури COMMTIMEOUTS.

Success = SetCommTimeouts (hParallelPort, MyCommTimeouts)

Якщо Success = False Тоді

Throw Нові CommException ("Не вдається виконати перенастроювання параметрів часу очікування")

End If

'Запис даних у порт LPT1.

'Примітка: Ви не можете читати дані з паралельного порту, викликавши функцію ReadFile.

Console.WriteLine ("Запис наступних даних у порт LPT1: Test")

Success = WriteFile (hParallelPort, буфера Buffer.Length, BytesWritten, IntPtr.Zero)

Якщо Success = False Тоді

Throw Нові CommException ("Не можу записати в LPT1")

End If

Catch колишніх як виняток

Console.WriteLine (Ex.Message)

Врешті-решт

'Звільнення дескриптора LPT1.

Success = CloseHandle (hParallelPort)

Якщо Success = False Тоді

Console.WriteLine ("Не вдається звільнити ручку LPT1")

End If

End TryConsole.WriteLine ("Натисніть ENTER, щоб закрити")

Console.ReadLine ()End SubEnd Module

 

Welcome to EDABoard.com

Sponsor

Back
Top