成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

VB與51單片機串口通信

Vb通信口設(shè)置```Public Sub Rs_Port_Set()On Error GoTo Err: If (MSCOMM1.PortOpen True) Then MSCO

Vb通信口設(shè)置

```

Public Sub Rs_Port_Set()

On Error GoTo Err:

If (MSCOMM1.PortOpen True) Then

MSCOMM1.PortOpen False

End If

Combo1.Text ‘設(shè)置通信口

"9600,n,8,1" ‘設(shè)置波特率

1 ‘由串口讀入字符串長度或字節(jié)個數(shù)

0 ‘?dāng)?shù)據(jù)傳送事件不會產(chǎn)生OnComm事件中的傳送事件

MSCOMM1.RThreshold 1 ‘設(shè)置或返回引發(fā)接收事件的字節(jié)數(shù)

0 ‘返回在接收寄傳器中的字符數(shù)

comInputModeBinary ‘?dāng)?shù)據(jù)以二進制形式取回

MSCOMM1.PortOpen True ‘打開串口

Exit Sub

Err:End Sub

```

Vb發(fā)送函數(shù)

```

Public Sub SendDataToCom(Num As Byte)

Dim oDt As Variant

Dim Y(0 To 0) As Byte

Y(0) H30

Num

Y(1) HD

Y(2) HA

oDt Y

0 ‘清空緩沖

If MSCOMM1.PortOpen True Then MSCOMM1.Output oDt ‘發(fā)送數(shù)據(jù)

End Sub

```

VB OnComm事件

```

Private Sub MSCOMM1_OnComm()

Dim I, hb As Integer

Static COMBUFF(10) As Byte

Dim Strtemp As String

On Error goto Err

hb 1

Strtemp ""

If hb Then

For I 0 To hb - 1

COMBUFF(I) (0) ‘接收字符

Strtemp Strtemp Chr(COMBUFF(I))

Next I

End If

Exit Sub

Err:End Sub

```

51單片機通信口設(shè)置

```

void IniCom(void){

SCON 0x50; //串口工作于方式1,充許接收

PCON 0x00; //波特率不倍增

TMOD0X20; //定時器計數(shù)器1工作于方式2;

TH1TL10xFD; //波特率為9600;

EA1; //開總中斷;

ES1; //開串口中斷

TR11; //開放定時器1,程序要加定時中斷函數(shù),否則程序出錯.

}

```

查詢方式

```

for(;;)

{

while(RI0);

RI0;

ComDataSBUF; //接收數(shù)據(jù)

SBUFComData; //把收到數(shù)據(jù)再發(fā)送回去

while(TI0);

TI0;

}

```

發(fā)送函數(shù)

```

//向串口發(fā)送一個字符

void SendChar(unsigned char ch) {

SBUF ch;

while(TI0);

TI0;

}

//向串口發(fā)送一個英盆字符串,strlen為該字符串長度

void SendString(unsigned char *str,unsigned int strlen){

unsigned int k0;

do

{

SendChar(*(str k));

k ;

}while(k < strlen);

}

```

串口接收中斷函數(shù)

```

void serial () interrupt 4 using 3 {

if (RI)

{

RI0;

InBuf[0]SBUF;

}

}

```

VB與51單片機串口通信及設(shè)置方法詳解

標(biāo)簽: