vb实例教程:串口通信控制硬件设备的实例代码与调试

admin 综合编程开发技术 2


用电脑控制传感器、LED 灯或者小电机,是不是听起来很酷?其实只要通过串口通信就能实现,VB 做这个特别方便。但很多新手刚接触时,总会问:“串口到底是啥?代码怎么写才能让硬件听话?” 别着急,今天兔子哥就带大家做一个用 VB 通过串口控制 LED 灯的小项目,从接线到调试一步步讲清楚,看完你就明白了。

先搞明白:串口通信是怎么回事?


简单说,串口就是电脑上的一个通信接口,现在很多电脑没有传统的 9 针串口了,但可以用 USB 转串口线。它的作用就像一根线,把电脑和硬件连起来,电脑发命令,硬件接收后执行动作,比如亮灯、转电机。
那电脑和硬件怎么 “说话” 呢?它们用的是二进制数据,不过我们在 VB 里可以用字符串发送,比如发 “ON” 让灯亮,发 “OFF” 让灯灭。是不是很简单?


准备材料:这些东西不能少


做这个实例,你需要准备:
  1. 一台装了 VB6.0 的电脑
  2. USB 转串口模块(比如 CH340 芯片的,便宜又好用)
  3. 一个带串口的 LED 控制板(或者自己用 Arduino 做一个简单的)
  4. 几根杜邦线,用来连接模块和控制板

可能有朋友会问,没有硬件怎么办?可以先用虚拟串口软件模拟一下,比如 VSPD,创建两个虚拟串口,VB 用一个,另一个用串口调试助手测试,这样不用硬件也能学代码。


第一步:在 VB 里添加串口控件


VB 自带了 MSComm 串口控件,但默认不在工具箱里,得手动加:
  1. 打开 VB,点菜单栏 “工程”→“部件”
  2. 在弹出的窗口里找到 “Microsoft Comm Control 6.0”,打上勾,点 “确定”
  3. 这时工具箱里会多一个电话图标的控件,就是 MSComm 了,拖一个到窗体上

这个控件是串口通信的核心,所有设置和发送接收数据都靠它。


第二步:设置串口参数


硬件和电脑通信,参数必须一致,就像两个人说话得用同一种语言。双击窗体,在 Form_Load 里写设置代码:
plaintext
With MSComm1.CommPort = 3 ' 串口号,根据自己电脑的实际情况改,在设备管理器里能看到.Settings = "9600,N,8,1" ' 波特率9600,无校验,8数据位,1停止位.PortOpen = True ' 打开串口.RThreshold = 1 ' 收到1个字符就触发接收事件.SThreshold = 0End With

串口号一定要设对,不然会提示 “端口不存在”。怎么看串口号呢?右键 “我的电脑”→“管理”→“设备管理器”→“端口”,里面会显示 “COM3” 之类的,照着填就行。


第三步:写发送数据的代码


加两个按钮,Caption 分别为 “开灯” 和 “关灯”,用来发送命令:
  1. 双击 “开灯” 按钮:

plaintext
If MSComm1.PortOpen ThenMSComm1.Output = "ON" & vbCrLf ' 发“ON”加回车,很多硬件需要回车换行做结束符End If

  1. 双击 “关灯” 按钮:

plaintext
If MSComm1.PortOpen ThenMSComm1.Output = "OFF" & vbCrLfEnd If

这里加 vbCrLf 是因为很多硬件设置了以回车换行作为命令结束的标志,不加的话硬件可能不识别。你也可以问问硬件厂家,他们的命令格式是什么。


第四步:写接收数据的代码


硬件收到命令后,可能会回复确认信息,比如回复 “LED ON”,我们要在 VB 里显示出来。双击 MSComm 控件,写接收事件代码:
plaintext
Dim recData As StringIf MSComm1.InBufferCount > 0 ThenrecData = MSComm1.Input ' 读取接收的数据Text1.Text = Text1.Text & recData ' 在文本框里显示End If

加个文本框 Text1,用来显示收到的信息,这样就能知道硬件有没有收到命令了。


第五步:接线和调试


代码写完了,该接硬件了:
  1. USB 转串口模块的 TX 接控制板的 RX,RX 接控制板的 TX(交叉连接,就像两个人对话,你说的我听,我说的你听)
  2. 模块的 GND 接控制板的 GND,共地很重要,不然通信不稳定
  3. 给控制板供电,注意电压要对,别烧了

接好后按 F5 运行 VB 程序,点 “开灯”,如果一切正常,LED 就会亮,文本框里会显示硬件的回复。


常见问题:调试时遇到这些情况怎么办?


问题可能原因解决办法
提示 “端口已打开”串口被其他程序占用关闭串口调试助手等其他用了这个串口的程序
发送命令后硬件没反应串口号或参数不对检查设备管理器里的串口号,确认硬件参数和 VB 设置一致
收到乱码波特率不对,或者接线错误重新设置波特率,检查 TX 和 RX 是否接反

我刚开始调试的时候,总收不到数据,后来发现是波特率设成了 4800,而硬件默认是 9600,改过来就好了。所以参数一定要仔细核对。


其实串口通信不难,关键是多调试。建议大家先把发送接收搞通,再慢慢尝试更复杂的控制,比如发送数值控制 LED 亮度。
我个人觉得,做硬件控制最有成就感,看着自己写的程序能让实物动起来,特别开心。如果一开始调试不顺利也别灰心,硬件问题有时候很 tricky,一步一步排查,总能解决的。
希望这个教程能帮你入门串口通信,有啥问题可以留言问我,咱们一起交流。

标签: Visual Basic VB.NET

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~