
VB和单片机进行串口通信 通过VB界面两个简单的按钮 发送两个数据给单片机
这是我写的程序但不知道哪有问题请大家帮忙谢谢没有分值了大家帮帮忙啊PrivateSubCommand1_Click()Dimd(0)AsByted(0)=&HFEIfMS...
这是我写的程序 但不知道哪有问题 请大家帮忙 谢谢 没有分值了 大家帮帮忙啊
Private Sub Command1_Click()
Dim d(0) As Byte
d(0) = &HFE
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
MSComm1.Output = d(0)
End If
End Sub
Private Sub Command2_Click()
MSComm1.OutBufferCount = 0
End Sub
Private Sub Command3_Click()
Dim E(0) As Byte
E(0) = &HFF
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
MSComm1.Output = E(0)
End If
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 4
MSComm1.PortOpen = False
MSComm1.OutBufferSize = 2 ' 设置发送缓冲区2Byte
MSComm1.OutBufferCount = 0
End Sub 展开
Private Sub Command1_Click()
Dim d(0) As Byte
d(0) = &HFE
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
MSComm1.Output = d(0)
End If
End Sub
Private Sub Command2_Click()
MSComm1.OutBufferCount = 0
End Sub
Private Sub Command3_Click()
Dim E(0) As Byte
E(0) = &HFF
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
MSComm1.Output = E(0)
End If
End Sub
Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 4
MSComm1.PortOpen = False
MSComm1.OutBufferSize = 2 ' 设置发送缓冲区2Byte
MSComm1.OutBufferCount = 0
End Sub 展开
1个回答
展开全部
做一个整形到ASCII的转换函数。如果你要发送的数据最大值可以确定,可以根据最大值定义一个ASCII数组,数组的每一个单元存放整形数据的一位。
发送前先对发送整形数组里的单元转换成ASCII数组,然后再按照通用的发送函数进行发送。
void InttoChar (uint IntNumber)
//---------------------------------------------------------
// Name: void InttoChar (int IntNumber)
// Func.: Translate integer to ASCII charactor array
// Char.: IntNumber number to be translated to ASCII charactor
//---------------------------------------------------------
{
if (IntNumber < 10)
{
AsciiArray[0] = IntNumber + 0x30;
AsciiArray[1] = 0x20;
AsciiArray[2] = 0x20;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
return;
}
if (IntNumber < 100)
{
AsciiArray[0] = IntNumber / 10 + 0x30;
AsciiArray[1] = IntNumber % 10 + 0x30;
AsciiArray[2] = 0x20;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
return;
}
if (IntNumber < 1000)
{
AsciiArray[0] = IntNumber / 100 + 0x30;
AsciiArray[1] = IntNumber % 100 / 10 + 0x30;
AsciiArray[2] = IntNumber % 10 + 0x30;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
return;
}
if (IntNumber < 10000)
{
AsciiArray[0] = IntNumber / 1000 + 0x30;
AsciiArray[1] = IntNumber % 1000 / 100 + 0x30;
AsciiArray[2] = IntNumber % 100 / 10 + 0x30;
AsciiArray[3] = IntNumber % 10 + 0x30;
AsciiArray[4] = 0x20;
return;
}
else
{
AsciiArray[0] = IntNumber / 10000 + 0x30;
AsciiArray[1] = IntNumber % 10000 / 1000 + 0x30;
AsciiArray[2] = IntNumber % 1000 / 100 + 0x30;
AsciiArray[3] = IntNumber % 100 / 10 + 0x30;
AsciiArray[4] = IntNumber % 10 + 0x30;
return;
}
}
发送前先对发送整形数组里的单元转换成ASCII数组,然后再按照通用的发送函数进行发送。
void InttoChar (uint IntNumber)
//---------------------------------------------------------
// Name: void InttoChar (int IntNumber)
// Func.: Translate integer to ASCII charactor array
// Char.: IntNumber number to be translated to ASCII charactor
//---------------------------------------------------------
{
if (IntNumber < 10)
{
AsciiArray[0] = IntNumber + 0x30;
AsciiArray[1] = 0x20;
AsciiArray[2] = 0x20;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
return;
}
if (IntNumber < 100)
{
AsciiArray[0] = IntNumber / 10 + 0x30;
AsciiArray[1] = IntNumber % 10 + 0x30;
AsciiArray[2] = 0x20;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
return;
}
if (IntNumber < 1000)
{
AsciiArray[0] = IntNumber / 100 + 0x30;
AsciiArray[1] = IntNumber % 100 / 10 + 0x30;
AsciiArray[2] = IntNumber % 10 + 0x30;
AsciiArray[3] = 0x20;
AsciiArray[4] = 0x20;
return;
}
if (IntNumber < 10000)
{
AsciiArray[0] = IntNumber / 1000 + 0x30;
AsciiArray[1] = IntNumber % 1000 / 100 + 0x30;
AsciiArray[2] = IntNumber % 100 / 10 + 0x30;
AsciiArray[3] = IntNumber % 10 + 0x30;
AsciiArray[4] = 0x20;
return;
}
else
{
AsciiArray[0] = IntNumber / 10000 + 0x30;
AsciiArray[1] = IntNumber % 10000 / 1000 + 0x30;
AsciiArray[2] = IntNumber % 1000 / 100 + 0x30;
AsciiArray[3] = IntNumber % 100 / 10 + 0x30;
AsciiArray[4] = IntNumber % 10 + 0x30;
return;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询