0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用虚拟串行端口使PIC和PC相互通信

454398 来源:工程师吴畏 2019-08-01 16:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在本教程中,我们将介绍如何使用虚拟串口让PIC和PC相互通信

串口示意图

先决条件

由于涵盖了很多主题本教程中,您熟悉一般电子和微控制器非常重要。以下是您在尝试此项目之前应该熟悉的主题的简短列表:

微控制器 - PIC18

PIC UART模块

Visual Studio

FTDI:串行通信仍然有效

过去的计算机具有并行和串行端口,允许它们与外部硬件通信。与使用起来非常复杂的较新USB端口不同,串行和并行端口是业余爱好者最好的朋友。

然而,技术已经转移并让我们陷入黑暗,没有更多用户友好的端口可以玩FTDI(Future Technology Devices International)是一家成立于1992年的半导体设备公司。自那时起,它们在电子产品界(尤其是业余爱好者)中声名鹊起。因为他们生产的IC可以通过串口桥接USB端口。换句话说,他们的IC将处理USB端,并为用户提供IC上的物理串行端口连接,以及计算机上的虚拟串行端口。

在本教程中,我们将使用VB.net生成一个可以使用虚拟串口与PIC通信的表单程序。

这个项目选择了VB.net,因为根据作者的观点和经验,VB.net是处理串口时更加用户友好。与C ++和C#不同,VB.net更宽容,使代码更容易理解。可以在几行简短的代码中在VB.net中设置串口。相比之下,在C ++或C#中,只需要更多的行来初始化端口。这并不意味着VB.net整体语言更好;它只是一种非常适合业余爱好的PIC-to-PC通信语言。

PIC串行通信

该项目的第一步是配置PIC单片机,以便我们可以使用UART模块。该初始化代码可在setup.h中找到,它将UART模块配置为在异步模式下运行,使用8位,并以10417波特的速度运行。它还配置PIC以在通过UART接收字节时触发中断;这样我们就可以立即处理输入数据以防止数据丢失。

这里的PIC代码也有一些OLED例程,因此我们可以显示当前存储在temp_text数组中的文本。每当触发接收中断时,UART字节都存储在temp_text中,并且strPos会递增。

主循环将不断清除OLED屏幕,打印temp_text数组中的数据,然后运行一个小延迟(这可以提高OLED性能)。主循环还扫描B0输入引脚,如果引脚打开,则PIC会将temp_text中的数据发送到UART,通过串口发送。

VB.net表单应用程序

要使Windows识别FTDI,相应的驱动程序需要安装(这些驱动程序可以在FTDI网站上找到)。

VB.net表单程序分两个阶段创建。第一阶段是设计表单本身,第二阶段是对表单进行编码。

无论您对Microsoft的看法是什么,在制作GUI应用程序时,VS Express都必须是其中之一。最神奇的IDE曾经构思过。您可以直接在表单中拖动所需的对象,定位它们,并更改其外观和属性,而不是逐行编码按钮和元素。但是,您应该已经知道这一点,因为这是一个预先请求!因此,使用新表单,添加您在下面的图像中看到的所有功能,或者只需打开附加的VB.net项目并复制您想要的内容。虽然布局和对象名称不是很重要,但是必须拖入一个串口对象,该对象可以在工具箱中找到。

下一步是将程序编码为向表单中的对象添加功能并使串行端口正常工作。第一个重要功能是获取可用的当前串行端口列表。单击刷新按钮时,将清除包含所有串行端口名称的组合框。然后循环遍历所有可用的串行端口,将每个串行端口名称添加到组合框。

找到串口后,打开时间将在PIC和PC之间建立连接的虚拟端口。单击打开端口按钮时,将串行端口配置为使用波特率10417(必须与PIC波特率相同),不使用奇偶校验位,并使用一个停止位。然后,通过首先将端口名称设置为组合框中的选定项目并打开open()函数来打开串行端口。请注意,此函数会执行try/catch中的所有操作,因为IO可能会出现许多错误。

那么,既然我们已经打开了一个端口,我们需要开始向PIC发送数据。这就是VB.net串口的美妙之处。我们可以使用的第一个函数是WriteLine,它基本上写一个字符串行并用一个新行终止它(通常是回车换行符)。但PIC通常不希望接收字符串,而可能更喜欢字节数据。再次,这在VB.net中是微不足道的,只需使用Write()函数完成,其中第一个参数是要发送的字节数组,第二个参数是从数组开始的位置,最后一个参数是数字要发送的字节数。

表单应用程序中的最后一个重要功能是通过串口接收数据。同样,与许多VB.net函数一样,这是微不足道的,可以使用以下两个函数之一来完成:ReadLine()和Read()。 ReadLine在接收以新行终止的字符串时很有用,但它可能导致程序挂起,因为它会等待直到收到整行。第二个读取函数是Read(),其工作方式与Write相同,其中第一个参数是用于存储数据的数组,第二个参数是从数据开始存储数据的位置,最后一个参数是从缓冲区读取的字节数。

可以使用大多数电路构造技术制作PIC电路,但最好使用临时电路。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PC
    PC
    +关注

    关注

    9

    文章

    2164

    浏览量

    158507
  • PIC
    PIC
    +关注

    关注

    8

    文章

    511

    浏览量

    90442
  • 串行端口
    +关注

    关注

    0

    文章

    36

    浏览量

    12031
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    并行与串行的基本通信方式

    1、并行通信方式:将数据字节的各位多条数据线同时进行传输,每位数据都需要一条传输线。 2、串行通信方式:串行
    发表于 11-24 06:36

    Xilinx FPGA串行通信协议介绍

    Xilinx FPGA因其高性能和低延迟,常用于串行通信接口设计。本文深入分析了Aurora、PCI Express和Serial RapidIO这三种在Xilinx系统设计中关键的串行通信
    的头像 发表于 11-14 15:02 1913次阅读
    Xilinx FPGA<b class='flag-5'>串行</b><b class='flag-5'>通信</b>协议介绍

    串行通信相关的基础知识

    串行通信是电子设备中数据交换的基石。最常见的串行通信协议有UART,SPI,I2C等。
    的头像 发表于 10-15 10:53 1693次阅读
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>相关的基础知识

    请问如何使用 Nu-Link-Me 的虚拟 COM 端口

    除了编程和调试功能外,Nu-Link-Me 3.0 版(或更高版本)还支持虚拟 COM 端口功能。通过虚拟COM端口,用户可以在计算机的通信
    发表于 08-18 08:19

    串行通信和并行通信的区别是什么

    串行通信和并行通信是数据传输的两种基本方式,它们在数据传输方式、线路设计、传输效率、应用场景等方面存在显著差异。以下是两者的详细对比: 一、数据传输方式 串行
    的头像 发表于 07-22 10:55 1787次阅读

    全面了解串行通信

    串行通信是一种数据传输方式,它将数据按 逐位顺序 (bit by bit)在一条传输线上发送和接收,与并行通信(同时传输多位数据)形成对比。以下是其核心概念、工作原理、特点及应用的详细解释: 一
    的头像 发表于 07-19 14:13 1156次阅读

    有没有办法可靠地使 UMASS 连接在 Windows 10/11 下工作?

    LINUX 的 PC 连接时,设备也能按预期工作。 如果我们的设备连接到运行 Windows 10/11通过 USB2端口我们可以以串行模式与所有通道进行通信。 切换到 UMASS
    发表于 05-15 07:30

    串行通信接口SPI与QSPI的区别

    在嵌入式系统的世界里,选择正确的通信技术可以对项目的性能和可扩展性产生重大影响。让我们比较两个流行的串行通信接口:SPI(串行外设接口)和QSPI(四路SPI)。
    的头像 发表于 04-09 15:24 2557次阅读
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>接口SPI与QSPI的区别

    请问st25r3911b可以相互通信吗?

    st25r3911b可以相互通信吗?有没有demo可以参考?
    发表于 03-11 07:23

    Web Bluetooth SPP(串行端口配置文件)示例

    电缆替代(Cable Replacement)通常指的是通过无线技术,如低功耗蓝牙(Bluetooth LE)替代传统的有线连接,例如串行端口配置文件(Serial Port Profile,简称SPP)。
    的头像 发表于 02-28 09:40 1073次阅读

    hyper-v 备份,hyper-v怎样进行虚拟机的创建

    虚拟机技术打破了传统计算机的限制,为我们带来了全新的计算机模式。今天给大家介绍hyper-v怎样进行虚拟机的创建?    hyper-v怎样进行虚拟
    的头像 发表于 02-05 14:54 805次阅读
    hyper-v 备份,hyper-v<b class='flag-5'>怎样</b>进行<b class='flag-5'>虚拟</b>机的创建

    串行接口的工作方式有几种,串行接口的RXD1和TXD1是什么端口

    在数字通信领域,串行接口作为一种高效的数据传输方式,广泛应用于各种电子设备之间的数据交换。串行接口不仅具有结构简单、传输距离远、抗干扰能力强等优点,而且能够支持多种工作方式,以适应不同应用场景的需求。本文将深入探讨
    的头像 发表于 01-29 16:51 2098次阅读

    ADI公司串行端口开发和故障排除指南

    电子发烧友网站提供《EE-74:ADI公司串行端口开发和故障排除指南.pdf》资料免费下载
    发表于 01-07 13:48 13次下载
    ADI公司<b class='flag-5'>串行</b><b class='flag-5'>端口</b>开发和故障排除指南

    电视机顶盒互联互通的能力

    随着科技的飞速发展,家庭娱乐方式也在不断演变。电视机顶盒作为家庭娱乐的核心设备之一,其互联互通的能力正在成为衡量其性能的重要标准。 一、互联互通的定义与重要性 互联互通是指设备之间能够相互
    的头像 发表于 12-16 15:42 1511次阅读