|
串口七日 之 创世纪篇
作者:程序匠人
Ø 第六日
============================
圣经创世纪篇之第六日
上帝说:“地要生出活物来;牲畜、昆虫、野兽各从其类。”于是,上帝造出了这些生灵,使它们各从其类。
上帝看到万物并作,生灭有继,就说:“我要照着我的形象,按着我的样式造人,派他们管理海里的鱼、空中的鸟、地上的牲畜和地上爬行的一切昆虫。”上帝就照着自己的形象创造了人。
上帝本意让人成为万物之灵,就赐福给他们,对他们说:“要生养众多,遍满地面,治理地上的一切,也要管理海里的鱼、空中的鸟和地上各样活物。”按《圣经》的说法,人类是这个世界的管理者和支配者。
============================
串口创世纪篇之第六日
匠人说:“计算机上要编个平台程序来;让其控制单片机”于是,匠人将丢下多日的VB重新拾起来,开始打造自己的计算机通讯控制平台。
匠人看到用串口调试器进行调试太麻烦了,就说:“我要仿造这个软件的功能,按照我的实际要求编个平台程序,让它管理单片机,进行调试和标定校正”匠人就照着“comdebug.exe”的功能打造了“汽车仪表通讯平台”
匠人本意让这个软件成为平台,就给它添加功能。按匠人制定的《通讯协议》的说法:这个软件将成为公司后续所有同类产品的管理者和支配者。
VB编程主要是要用到一个Mscomm控件,相关资料收集如下(点击进入相关连接。如果无法进入,可以到《匠人的百宝箱》搜索):
关于MSCOMM控件的一些说明
MSComm控件属性大揭秘
MSComm控件使用详解
VB串口通讯实例
用VB5.0开发通信软件的技巧
使用VB开发Windows环境下的串行通信程序
一个简单的VB串口发送程序(源码)
抱歉不能将匠人自己的整个源程序与大家分享,特提供其中的一个子程序:
'----------------------
'发送数据
'----------------------
Private Sub SEND_CNT()
Dim buf1$, Buf2$
Dim OutByte(1 To 1) As Byte
If MSComm1.PortOpen = True Then
receive_t = False
buf1 = MSComm1.Input '清空输入缓冲区
send_Buf1 = ""
If send_Buf <> "" Then
Text提示信息.Text = Text提示信息.Text & "发送数据:"
Text提示信息.SelStart = Len(Text提示信息.Text)
While send_Buf <> ""
If InStr(send_Buf, Chr(32)) <> 0 Then
buf1 = Left(send_Buf, (InStr(send_Buf, Chr(32)) - 1))
send_Buf = Trim(Right(send_Buf, (Len(send_Buf) - InStr(send_Buf, Chr(32)) + 1)))
Else
buf1 = send_Buf
send_Buf = ""
End If
If Len(buf1) = 0 Then
buf1 = "00"
ElseIf Len(buf1) = 1 Then
buf1 = "0" & buf1
ElseIf Len(buf1) > 2 Then
buf1 = Right(buf1, 2)
End If
OutByte(1) = CSCommTestDlg(Right(buf1, 1)) + CSCommTestDlg(Left(buf1, 1)) * 16 '转换
If Len(Hex(OutByte(1))) = 1 Then
send_Buf1 = send_Buf1 & "0" '当高位=0时,添加一个0
End If
send_Buf1 = send_Buf1 & Hex(OutByte(1)) & Chr(32) '备份发送数据
MSComm1.Output = OutByte '送出数据(注意,这里就是关键的发送命令了)
Wend
send_Buf1 = Trim(send_Buf1)
Text提示信息.Text = Text提示信息.Text & send_Buf1 & vbCrLf
Text提示信息.SelStart = Len(Text提示信息.Text)
Timer应答延时.Enabled = True
Else
Text提示信息.Text = Text提示信息.Text & "没有可发送的数据!" & vbCrLf & vbCrLf
Text提示信息.SelStart = Len(Text提示信息.Text)
End If
Else
Text提示信息.Text = Text提示信息.Text & "串行端口尚未开启,无法发送数据!" & vbCrLf & vbCrLf
Text提示信息.SelStart = Len(Text提示信息.Text)
End If
End Sub
另外,展示一下匠人做的界面:

待续……
============================ |