一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用虛擬串行端口使PIC和PC相互通信

454398 ? 來(lái)源:工程師吳畏 ? 2019-08-01 16:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在本教程中,我們將介紹如何使用虛擬串口讓PIC和PC相互通信。

串口示意圖

先決條件

由于涵蓋了很多主題本教程中,您熟悉一般電子和微控制器非常重要。以下是您在嘗試此項(xiàng)目之前應(yīng)該熟悉的主題的簡(jiǎn)短列表:

微控制器 - PIC18

PIC UART模塊

Visual Studio

FTDI:串行通信仍然有效

過(guò)去的計(jì)算機(jī)具有并行和串行端口,允許它們與外部硬件通信。與使用起來(lái)非常復(fù)雜的較新USB端口不同,串行和并行端口是業(yè)余愛(ài)好者最好的朋友。

然而,技術(shù)已經(jīng)轉(zhuǎn)移并讓我們陷入黑暗,沒(méi)有更多用戶友好的端口可以玩FTDI(Future Technology Devices International)是一家成立于1992年的半導(dǎo)體設(shè)備公司。自那時(shí)起,它們?cè)陔娮赢a(chǎn)品界(尤其是業(yè)余愛(ài)好者)中聲名鵲起。因?yàn)樗麄兩a(chǎn)的IC可以通過(guò)串口橋接USB端口。換句話說(shuō),他們的IC將處理USB端,并為用戶提供IC上的物理串行端口連接,以及計(jì)算機(jī)上的虛擬串行端口。

在本教程中,我們將使用VB.net生成一個(gè)可以使用虛擬串口與PIC通信的表單程序。

這個(gè)項(xiàng)目選擇了VB.net,因?yàn)楦鶕?jù)作者的觀點(diǎn)和經(jīng)驗(yàn),VB.net是處理串口時(shí)更加用戶友好。與C ++和C#不同,VB.net更寬容,使代碼更容易理解??梢栽趲仔泻?jiǎn)短的代碼中在VB.net中設(shè)置串口。相比之下,在C ++或C#中,只需要更多的行來(lái)初始化端口。這并不意味著VB.net整體語(yǔ)言更好;它只是一種非常適合業(yè)余愛(ài)好的PIC-to-PC通信語(yǔ)言。

PIC串行通信

該項(xiàng)目的第一步是配置PIC單片機(jī),以便我們可以使用UART模塊。該初始化代碼可在setup.h中找到,它將UART模塊配置為在異步模式下運(yùn)行,使用8位,并以10417波特的速度運(yùn)行。它還配置PIC以在通過(guò)UART接收字節(jié)時(shí)觸發(fā)中斷;這樣我們就可以立即處理輸入數(shù)據(jù)以防止數(shù)據(jù)丟失。

這里的PIC代碼也有一些OLED例程,因此我們可以顯示當(dāng)前存儲(chǔ)在temp_text數(shù)組中的文本。每當(dāng)觸發(fā)接收中斷時(shí),UART字節(jié)都存儲(chǔ)在temp_text中,并且strPos會(huì)遞增。

主循環(huán)將不斷清除OLED屏幕,打印temp_text數(shù)組中的數(shù)據(jù),然后運(yùn)行一個(gè)小延遲(這可以提高OLED性能)。主循環(huán)還掃描B0輸入引腳,如果引腳打開(kāi),則PIC會(huì)將temp_text中的數(shù)據(jù)發(fā)送到UART,通過(guò)串口發(fā)送。

VB.net表單應(yīng)用程序

要使Windows識(shí)別FTDI,相應(yīng)的驅(qū)動(dòng)程序需要安裝(這些驅(qū)動(dòng)程序可以在FTDI網(wǎng)站上找到)。

VB.net表單程序分兩個(gè)階段創(chuàng)建。第一階段是設(shè)計(jì)表單本身,第二階段是對(duì)表單進(jìn)行編碼。

無(wú)論您對(duì)Microsoft的看法是什么,在制作GUI應(yīng)用程序時(shí),VS Express都必須是其中之一。最神奇的IDE曾經(jīng)構(gòu)思過(guò)。您可以直接在表單中拖動(dòng)所需的對(duì)象,定位它們,并更改其外觀和屬性,而不是逐行編碼按鈕和元素。但是,您應(yīng)該已經(jīng)知道這一點(diǎn),因?yàn)檫@是一個(gè)預(yù)先請(qǐng)求!因此,使用新表單,添加您在下面的圖像中看到的所有功能,或者只需打開(kāi)附加的VB.net項(xiàng)目并復(fù)制您想要的內(nèi)容。雖然布局和對(duì)象名稱不是很重要,但是必須拖入一個(gè)串口對(duì)象,該對(duì)象可以在工具箱中找到。

下一步是將程序編碼為向表單中的對(duì)象添加功能并使串行端口正常工作。第一個(gè)重要功能是獲取可用的當(dāng)前串行端口列表。單擊刷新按鈕時(shí),將清除包含所有串行端口名稱的組合框。然后循環(huán)遍歷所有可用的串行端口,將每個(gè)串行端口名稱添加到組合框。

找到串口后,打開(kāi)時(shí)間將在PIC和PC之間建立連接的虛擬端口。單擊打開(kāi)端口按鈕時(shí),將串行端口配置為使用波特率10417(必須與PIC波特率相同),不使用奇偶校驗(yàn)位,并使用一個(gè)停止位。然后,通過(guò)首先將端口名稱設(shè)置為組合框中的選定項(xiàng)目并打開(kāi)open()函數(shù)來(lái)打開(kāi)串行端口。請(qǐng)注意,此函數(shù)會(huì)執(zhí)行try/catch中的所有操作,因?yàn)镮O可能會(huì)出現(xiàn)許多錯(cuò)誤。

那么,既然我們已經(jīng)打開(kāi)了一個(gè)端口,我們需要開(kāi)始向PIC發(fā)送數(shù)據(jù)。這就是VB.net串口的美妙之處。我們可以使用的第一個(gè)函數(shù)是WriteLine,它基本上寫(xiě)一個(gè)字符串行并用一個(gè)新行終止它(通常是回車換行符)。但PIC通常不希望接收字符串,而可能更喜歡字節(jié)數(shù)據(jù)。再次,這在VB.net中是微不足道的,只需使用Write()函數(shù)完成,其中第一個(gè)參數(shù)是要發(fā)送的字節(jié)數(shù)組,第二個(gè)參數(shù)是從數(shù)組開(kāi)始的位置,最后一個(gè)參數(shù)是數(shù)字要發(fā)送的字節(jié)數(shù)。

表單應(yīng)用程序中的最后一個(gè)重要功能是通過(guò)串口接收數(shù)據(jù)。同樣,與許多VB.net函數(shù)一樣,這是微不足道的,可以使用以下兩個(gè)函數(shù)之一來(lái)完成:ReadLine()和Read()。 ReadLine在接收以新行終止的字符串時(shí)很有用,但它可能導(dǎo)致程序掛起,因?yàn)樗鼤?huì)等待直到收到整行。第二個(gè)讀取函數(shù)是Read(),其工作方式與Write相同,其中第一個(gè)參數(shù)是用于存儲(chǔ)數(shù)據(jù)的數(shù)組,第二個(gè)參數(shù)是從數(shù)據(jù)開(kāi)始存儲(chǔ)數(shù)據(jù)的位置,最后一個(gè)參數(shù)是從緩沖區(qū)讀取的字節(jié)數(shù)。

可以使用大多數(shù)電路構(gòu)造技術(shù)制作PIC電路,但最好使用臨時(shí)電路。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PC
    PC
    +關(guān)注

    關(guān)注

    9

    文章

    2152

    瀏覽量

    156559
  • PIC
    PIC
    +關(guān)注

    關(guān)注

    8

    文章

    507

    瀏覽量

    89280
  • 串行端口
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    串行通信接口SPI與QSPI的區(qū)別

    在嵌入式系統(tǒng)的世界里,選擇正確的通信技術(shù)可以對(duì)項(xiàng)目的性能和可擴(kuò)展性產(chǎn)生重大影響。讓我們比較兩個(gè)流行的串行通信接口:SPI(串行外設(shè)接口)和QSPI(四路SPI)。
    的頭像 發(fā)表于 04-09 15:24 ?1262次閱讀
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>接口SPI與QSPI的區(qū)別

    請(qǐng)問(wèn)st25r3911b可以相互通信嗎?

    st25r3911b可以相互通信嗎?有沒(méi)有demo可以參考?
    發(fā)表于 03-11 07:23

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

    電纜替代(Cable Replacement)通常指的是通過(guò)無(wú)線技術(shù),如低功耗藍(lán)牙(Bluetooth LE)替代傳統(tǒng)的有線連接,例如串行端口配置文件(Serial Port Profile,簡(jiǎn)稱SPP)。
    的頭像 發(fā)表于 02-28 09:40 ?642次閱讀

    hyper-v 備份,hyper-v怎樣進(jìn)行虛擬機(jī)的創(chuàng)建

    虛擬機(jī)技術(shù)打破了傳統(tǒng)計(jì)算機(jī)的限制,為我們帶來(lái)了全新的計(jì)算機(jī)模式。今天給大家介紹hyper-v怎樣進(jìn)行虛擬機(jī)的創(chuàng)建? ? ?hyper-v怎樣進(jìn)行虛擬
    的頭像 發(fā)表于 02-05 14:54 ?448次閱讀
    hyper-v 備份,hyper-v<b class='flag-5'>怎樣</b>進(jìn)行<b class='flag-5'>虛擬</b>機(jī)的創(chuàng)建

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

    在數(shù)字通信領(lǐng)域,串行接口作為一種高效的數(shù)據(jù)傳輸方式,廣泛應(yīng)用于各種電子設(shè)備之間的數(shù)據(jù)交換。串行接口不僅具有結(jié)構(gòu)簡(jiǎn)單、傳輸距離遠(yuǎn)、抗干擾能力強(qiáng)等優(yōu)點(diǎn),而且能夠支持多種工作方式,以適應(yīng)不同應(yīng)用場(chǎng)景的需求。本文將深入探討
    的頭像 發(fā)表于 01-29 16:51 ?1293次閱讀

    ADI公司串行端口開(kāi)發(fā)和故障排除指南

    電子發(fā)燒友網(wǎng)站提供《EE-74:ADI公司串行端口開(kāi)發(fā)和故障排除指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 13:48 ?7次下載
    ADI公司<b class='flag-5'>串行</b><b class='flag-5'>端口</b>開(kāi)發(fā)和故障排除指南

    電視機(jī)頂盒互聯(lián)互通的能力

    隨著科技的飛速發(fā)展,家庭娛樂(lè)方式也在不斷演變。電視機(jī)頂盒作為家庭娛樂(lè)的核心設(shè)備之一,其互聯(lián)互通的能力正在成為衡量其性能的重要標(biāo)準(zhǔn)。 一、互聯(lián)互通的定義與重要性 互聯(lián)互通是指設(shè)備之間能夠相互
    的頭像 發(fā)表于 12-16 15:42 ?965次閱讀

    為什么通信要使用虛擬串口和串口助手?

    是軟件模擬的串行通信接口,可在計(jì)算機(jī)上創(chuàng)建虛擬串口設(shè)備。操作與實(shí)際硬件串口相似,解決無(wú)硬件串口設(shè)備的通信需求,通過(guò)軟件處理和轉(zhuǎn)發(fā)串口數(shù)據(jù)實(shí)現(xiàn)模擬。下面說(shuō)說(shuō)串口助手和虛
    的頭像 發(fā)表于 11-15 01:04 ?3777次閱讀
    為什么<b class='flag-5'>通信</b>要使用<b class='flag-5'>虛擬</b>串口和串口助手?

    如何實(shí)現(xiàn)51單片機(jī)與PC機(jī)的串行通信

    51單片機(jī)與PC機(jī)的串行通信是一種常見(jiàn)的通信方式,它允許單片機(jī)通過(guò)串行接口與PC機(jī)進(jìn)行數(shù)據(jù)交換。
    的頭像 發(fā)表于 10-21 11:35 ?2667次閱讀

    怎樣用THS3201實(shí)現(xiàn)輸出功率可調(diào)?

    怎樣用THS3201實(shí)現(xiàn)輸出功率可調(diào)?
    發(fā)表于 08-26 08:28

    OPA735加OPA333,怎樣用TINA TI去仿真?

    當(dāng)輸入信號(hào)VG1從7.06V慢慢變化到7.22V時(shí)。 輸出電壓Vout的變化必須是接近線性變化的。我想知道我該怎樣用TINA TI去仿真?怎樣設(shè)置那個(gè)輸入信號(hào)VG1才能達(dá)到我的目的。因?yàn)檫@個(gè)電壓源好像
    發(fā)表于 08-02 08:39

    怎樣用萬(wàn)表測(cè)穩(wěn)壓管穩(wěn)壓值

    萬(wàn)表是一種常用的電子測(cè)量工具,可以用來(lái)測(cè)量電壓、電流、電阻等多種參數(shù)。在測(cè)量穩(wěn)壓管的穩(wěn)壓值時(shí),我們可以使用萬(wàn)表的直流電壓測(cè)量功能。以下是步驟和注意事項(xiàng): 準(zhǔn)備工具和材料 萬(wàn)表 穩(wěn)壓管 電源
    的頭像 發(fā)表于 07-31 14:26 ?3125次閱讀

    EN8F1823E完全替代PIC16F883,PIC16F1883,PIC16F1936,PIC16F1937

    PIC
    捷尚微輝芒微MCU單片機(jī)
    發(fā)布于 :2024年07月30日 16:59:15