シリアル通信

VBでの解説だが、わかりやすかったので抜粋

SetCommState 関数

デバイス制御ブロック(DCB)構造体の指定により通信デバイスを構成し、シリアルポートの通信条件も設定する。

Declare Function SetCommState Lib "kernel32.dll"
(ByVal hComm As Integer, ByRef lpDCB AsDCB)As Boolean

hComm
CreateFile 関数で取得したデバイスハンドルの値を代入。

lpDCB
DCB 構造体へのポインタを指定。DCB 構造体を持つ変数を宣言して使用する。

DCB構造体


Structure DCB
	DCBlength As Int32		構造体のサイズ
	BaudRate As Int32		ボーレートの設定
	fBitFields As Int32	ビット単位のフィールド定義(バイナリコードでの通信を行い、DTR・RTS制御を行い、DSR監視制御を行う設定は&H1019)
	wReserved As Int16		予約(0をセット)
	XonLim As Int16		Xon文字を送るときの受信バファのデータバイト数
	XoffLim As Int16		Xoff文字を送るときの受信バファの空きバイト数
	ByteSize As Byte		1データのビット数を指定(7か8)
	Parity As Byte		パリティ方式の指定(0:無、1:奇数、2:偶数)
	StopBits As Byte		ストップビット数を指定(0:1bit、1:1.5bit、2:2bit)
	XonChar As Byte		Xon文字を指定
	XoffChar As Byte		Xoff文字を指定
	ErrorChar As Byte		パリティエラーの場合に使う文字を指定
	EofChar As Byte		非バイナリモードの場合のデータ終了文字の指定
	EvtChar As Byte		イベントを生成する文字を指定
End Structure

戻り値として正常終了のときは True(0以外)をかえし、異常終了のときは False(0) をかえす