国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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更寬容,使代碼更容易理解??梢栽趲仔泻喍痰拇a中在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

    文章

    2167

    瀏覽量

    159321
  • PIC
    PIC
    +關注

    關注

    8

    文章

    511

    瀏覽量

    90949
  • 串行端口
    +關注

    關注

    0

    文章

    36

    瀏覽量

    12079
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用SPI給兩塊板子相互通信,主從設備該如何選擇呢?

    使用SPI給兩塊板子相互通信,主從設備該如何選擇呢?
    發表于 01-20 07:11

    單片機中的串口通訊串行同步通信串行異步通信

    串口是串行接口(serial port)的簡稱,也稱為串行通信接口或COM接口。串口通信是指采用串行通信
    發表于 01-15 08:06

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

    1、并行通信方式:將數據字節的各位多條數據線同時進行傳輸,每位數據都需要一條傳輸線。 2、串行通信方式:串行
    發表于 11-24 06:36

    Xilinx FPGA串行通信協議介紹

    Xilinx FPGA因其高性能和低延遲,常用于串行通信接口設計。本文深入分析了Aurora、PCI Express和Serial RapidIO這三種在Xilinx系統設計中關鍵的串行通信
    的頭像 發表于 11-14 15:02 ?2533次閱讀
    Xilinx FPGA<b class='flag-5'>串行</b><b class='flag-5'>通信</b>協議介紹

    串行通信相關的基礎知識

    串行通信是電子設備中數據交換的基石。最常見的串行通信協議有UART,SPI,I2C等。
    的頭像 發表于 10-15 10:53 ?1977次閱讀
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>相關的基礎知識

    基于USB的多虛擬設備通信

    接口性能使MCU不僅能夠處理典型的設備/主機通信,還可以通過USB虛擬化多個設備或數據通道。這一特點有效滿足了各種應用的多樣化需求。 USB 虛擬多復合設備: USB 虛擬多數據
    發表于 09-05 06:51

    請問如何使用 Nu-Link-Me 的虛擬 COM 端口

    除了編程和調試功能外,Nu-Link-Me 3.0 版(或更高版本)還支持虛擬 COM 端口功能。通過虛擬COM端口,用戶可以在計算機的通信
    發表于 08-18 08:19

    串行通信和并行通信的區別是什么

    串行通信和并行通信是數據傳輸的兩種基本方式,它們在數據傳輸方式、線路設計、傳輸效率、應用場景等方面存在顯著差異。以下是兩者的詳細對比: 一、數據傳輸方式 串行
    的頭像 發表于 07-22 10:55 ?2708次閱讀

    全面了解串行通信

    串行通信是一種數據傳輸方式,它將數據按 逐位順序 (bit by bit)在一條傳輸線上發送和接收,與并行通信(同時傳輸多位數據)形成對比。以下是其核心概念、工作原理、特點及應用的詳細解釋: 一
    的頭像 發表于 07-19 14:13 ?1824次閱讀

    PC6206 300mA低功耗低壓差線性穩壓器中文資料

    PC6206/PC6206E具有很低的靜態電流,典型1.5uA:當EN使端口置低時,關斷電流<0.1uA。同時芯片集成了過流保護和短路保護,提高了電路的可靠性。
    發表于 06-20 15:54 ?2次下載

    RS485串行通信協議介紹

    在上期我們介紹了RS232串行通訊,本期我們將進一步深入探討另一種廣泛應用于工業自動化和數據通信領域的串行通信標準——RS485。
    的頭像 發表于 05-15 11:42 ?1446次閱讀
    RS485<b class='flag-5'>串行</b><b class='flag-5'>通信</b>協議介紹

    有沒有辦法可靠地使 UMASS 連接在 Windows 10/11 下工作?

    LINUX 的 PC 連接時,設備也能按預期工作。 如果我們的設備連接到運行 Windows 10/11通過 USB2端口我們可以以串行模式與所有通道進行通信。 切換到 UMASS
    發表于 05-15 07:30

    CY7C65213-28PVXI中無法識別COM端口怎么處理?

    使用默認 VID 和 PID 設置的原型板在更改 VID/PID 后無法再識別設備管理器中的 COM 端口。這種情況已發生在多個不再能進行串行通信的電路板上。 所有這些板以前都能夠識別 COM
    發表于 05-06 09:48

    串行通信接口SPI與QSPI的區別

    在嵌入式系統的世界里,選擇正確的通信技術可以對項目的性能和可擴展性產生重大影響。讓我們比較兩個流行的串行通信接口:SPI(串行外設接口)和QSPI(四路SPI)。
    的頭像 發表于 04-09 15:24 ?3267次閱讀
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>接口SPI與QSPI的區別

    請問st25r3911b可以相互通信嗎?

    st25r3911b可以相互通信嗎?有沒有demo可以參考?
    發表于 03-11 07:23