【串口通信】——简单例子

21 篇文章 1 订阅

    上一篇文章给大家讲了一下串口编程的一些基本知识。今天要给大家介绍的是一个串口编程的简单例子。这个例子可以帮助大家对于串口通信的基本知识有个大致的了解。

首先是看界面:


    有点像一个聊天的软件,其实你完全可以这样想。但你面对的对象可能是一个硬件。

    然后让我们看代码:

Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Public Class Form1
    Public Sub New()
        InitializeComponent()
    End Sub
    Private com As System.IO.Ports.SerialPort

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        com = New System.IO.Ports.SerialPort()
        '获取所有的串口
        Dim pc As Microsoft.VisualBasic.Devices.Computer = New Microsoft.VisualBasic.Devices.Computer()
        Dim s As String
        For Each s In pc.Ports.SerialPortNames
            Me.cbxPortName.Items.Add(s)
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If IsNothing(cbxPortName.SelectedItem) = False Then

            com.Close()
            com.PortName = cbxPortName.SelectedItem.ToString()
            com.Open()
            If (com.IsOpen) Then

                btnClose.Enabled = True
                lbStatus.Text = "串口" + cbxPortName.SelectedItem.ToString() + "已经连接"
            Else
                MessageBox.Show("请选择串口!")
            End If
        End If
    End Sub

    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        If (com.IsOpen) Then
            com.WriteLine(txtSendMsg.Text)
        Else
            MessageBox.Show("请先连接串口!")
        End If
    End Sub

    Private Sub btnReceive_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReceive.Click
        txtReceive.Text = ""
        If (com.IsOpen) Then
            Try
                com.DiscardInBuffer()
                com.DiscardOutBuffer()
                txtReceive.Text = com.ReadLine()
            Catch
                Throw
            End Try
        Else
            MessageBox.Show("请先连接串口!")
        End If
    End Sub
End Class

上面的代码大家可以拷贝下来实现一下。

 

         当然我也说过了这是一个非常简单的例子。其中用到的东西我大概的总结一下:

         以上代码的核心是一个SerialPort类:表示串行端口资源。其中用到的其最重要的两个方法发送数据(write)和读取数据(read)当然看到这你可能还是有疑问,串口通信难道只有有了硬件才能进行学习研究嘛?答案当然是否定的。你完全可以采用虚拟的串口程序进行学习研究。给大家提供一个很好的虚拟串口程序:VSPM。下载地址:http://download.csdn.net/detail/hy6688_/6705423

基本使用的步骤;

  1. 安装以后工作模式选择应该为:VSPM运行在Server模式,支持Client模式设备
  2. 然后是使用设备探测器简历虚拟串口。(如果选择 建立默认的串口,软件就会自动帮你建立四个虚拟串口的)之后就是新增虚拟串口
  3. 串口任意选(这里你建立那个就可以在程序中选择那个),选择监听的IP地址:自己的IP如我的为192.168.24.129 Client模式的设备尝试连接此端口:随便写一个,一般不要和别的冲突就行。5000以后的一般没有问题。默认的就可以这里选6020

  1. 建立之后:选择此串口,再选择菜单栏:检查此设备连接,输入刚才新增时候选择的IP地址:92.168.24.129,刚才选择的端口:6020
  2. 点击重新连接,这个窗口没有什么反映:但是主窗口的串口最右边一栏:最后一次操作:显示串口:COM2没有打开。
  3. 然后让我们写好的程序运行起来,点击链接。然后在发送文本框中输入数据点击发送试试我们的虚拟串口中就可以收到数据:

  1. 再选择菜单栏-跟踪串口数据然后点击我们制作的小例子的接收命令。当我们在Telnet管理窗体的显示信息栏中输入一些字符并按下回车键时我们的例子中的接收文本框就会收到我们刚刚写入的信息。并在跟踪串口数据中有显示。如图:

综上所述:只是一个简单的串口编程的小例子其中存在很多的问题,如果你真正动手实践了你也会发现其中的问题。甚至不能满足我们基本的聊天功能。这些问题留给下篇文章介绍。


  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
### 回答1: Python串口通信是指使用Python编程语言操作串口进行通信。它是一种简单、灵活、可移植的工具,能够很方便地实现单片机与电脑之间的通讯。下面我们通过一个实例来了解Python串口通信。 该实例涉及到的硬件设备为Arduino UNO开发板和电脑,通过串口进行通讯,并使用Python编写程序。首先,我们需要在Arduino开发板上编写程序,如下所示: void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello World!"); delay(1000); } 代码简单地实现了向串口发送"Hello World!"的功能,并且每隔1秒进行一次发送。 接下来,我们在电脑上使用Python编写程序,在Windows系统下可使用pyserial库进行串口通信。代码如下所示: import serial ser = serial.Serial('COM3', 9600) # 串口参数:端口号、波特率 while True: if ser.in_waiting: # 等待串口接收数据 data = ser.readline().decode().strip() # 读取数据 print(data) # 打印数据 代码进行了如下操作: 1. 引入pyserial库并创建串口对象ser,指定端口号为COM3,波特率为9600。 2. 在无限循环中,等待串口接收数据,当接收到数据时,通过readline()函数读取数据,并使用decode()函数将字节流转换为字符串,并使用strip()函数去除字符串中的空格和换行符。 3. 最后将读取的数据打印出来。 这样就可以通过Python实现串口通信的功能,而且在Linux和Mac OS X等操作系统上同样适用,因为pyserial库为跨平台支持。 ### 回答2: Python串口通信是Python语言在串口通信领域的应用实践,具有以简洁、清晰、易学易用、可扩展等优点。下面就Python串口通信实例进行介绍,以帮助读者更好地了解并运用Python串口通信。 Python串口通信的实现主要涉及到pySerial模块的运用,该模块提供了类似于Windows API的串口通信接口,可用于串口数据的读写操作。在运用pySerial模块实现Python串口通信前,我们需要了解串口通信需要的一些参数,如波特率、数据位、校验位和停止位等。 了解了这些基础知识后,接下来我们可以实现一个Python串口通信的实例——读取传感器数据。假设我们需要从串口中读取连接到电脑的传感器的数据。步骤如下: 1. 导入pySerial模块:使用import语句导入pySerial模块。 2. 打开串口:使用pySerial的Serial()函数打开串口,例如:ser = serial.Serial('COM1', 9600, timeout=0.5)。 3. 读取数据:使用read()函数读取串口传回的数据。 4. 解析数据:将串口读取到的二进制数据转换成“人类可以读懂”的文本格式。 5. 处理数据:对数据进行适当的处理,如进行计算或存储。 该实例完整代码为: import serial ser = serial.Serial('COM1', 9600, timeout=0.5) while True: data = ser.read(12) if data != b'': data_str = data.decode('utf-8') data_list = data_str.split(',') data_1 = float(data_list[0]) data_2 = float(data_list[1]) # 对数据进行处理,如进行计算或存储 通过以上步骤,我们就可以成功读取传感器数据并进行相应的处理。以上实例只是Python串口通信的一个简单例子,具体的实现方法还需要根据实际情况进行调整,但是总体思路是相似的。Python串口通信具有较广泛的应用场景,如连接机器人、太阳能电池等,可以大大提高系统效率,开发者可以根据自己的需求,更好地运用Python串口通信技术。 ### 回答3: Python是一种非常流行的编程语言,它有很强的可扩展性和通用性,用于开发各种应用程序。其中一个典型的应用是串口通信,它可以将电脑连接到其他设备上。本文将介绍Python串口通信实例的基本原理和使用方法。 首先,在Python中使用串口通信需要安装PySerial库。这个库可以通过pip安装,具体命令为“pip install pyserial”。安装完成后,可以打开Python环境,在命令行中导入serial库,开始使用串口通信功能。 其次,串口通信需要打开串口,指定通信的波特率和字节大小等参数。在PySerial库中,可以使用serial.Serial()来创建一个串口对象。例如: ``` import serial ser = serial.Serial('COM1', 9600, timeout=1) ``` 其中,'COM1'是串口的名字,9600是波特率,timeout=1表示超时时间为1秒。当串口打开后,就可以开始发送和接收数据了。 最后,使用串口通信时,一般要使用循环来读取数据。例如: ``` while True: data = ser.read(1) if data: print("Received: ", data) ``` 这个循环会一直执行,从串口中读取一个字节的数据,并将其打印出来。 以上就是Python串口通信的基本使用方法。通过安装PySerial库,创建串口对象,并使用循环读取数据,可以实现串口和电脑的通信。这种方法可以应用于各种场景,例如机器人控制、传感器数据采集等。
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值