色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

454398 ? 來源:工程師吳畏 ? 2019-08-01 16:54 ? 次閱讀

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

串口示意圖

先決條件

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

微控制器 - PIC18

PIC UART模塊

Visual Studio

FTDI:串行通信仍然有效

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

然而,技術(shù)已經(jīng)轉(zhuǎn)移并讓我們陷入黑暗,沒有更多用戶友好的端口可以玩FTDI(Future Technology Devices International)是一家成立于1992年的半導(dǎo)體設(shè)備公司。自那時(shí)起,它們?cè)?a target="_blank">電子產(chǎn)品界(尤其是業(yè)余愛好者)中聲名鵲起。因?yàn)樗麄兩a(chǎn)的IC可以通過串口橋接USB端口。換句話說,他們的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#中,只需要更多的行來初始化端口。這并不意味著VB.net整體語言更好;它只是一種非常適合業(yè)余愛好的PIC-to-PC通信語言。

PIC串行通信

該項(xiàng)目的第一步是配置PIC單片機(jī),以便我們可以使用UART模塊。該初始化代碼可在setup.h中找到,它將UART模塊配置為在異步模式下運(yùn)行,使用8位,并以10417波特的速度運(yùn)行。它還配置PIC以在通過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輸入引腳,如果引腳打開,則PIC會(huì)將temp_text中的數(shù)據(jù)發(fā)送到UART,通過串口發(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)行編碼。

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

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

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

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

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

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

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

    關(guān)注

    9

    文章

    2086

    瀏覽量

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

    關(guān)注

    8

    文章

    507

    瀏覽量

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

    關(guān)注

    0

    文章

    31

    瀏覽量

    11677
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    如何讓兩個(gè)ESP8266可以連續(xù)地相互通信

    客戶端,它也起作用,但現(xiàn)在我想設(shè)置兩個(gè)ESP8266以便它連續(xù)相互通信,為此我花了很多天的時(shí)間,但沒有找到任何可以幫助我這樣做的示例代碼,如果有任何示例代碼準(zhǔn)備好,請(qǐng)發(fā)送我。謝謝。。
    發(fā)表于 07-12 10:12

    TUSB2036通用串行總線的2或3端口集線器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TUSB2036通用串行總線的2或3端口集線器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-09 10:43 ?0次下載
    TUSB2036通<b class='flag-5'>用串行</b>總線的2或3<b class='flag-5'>端口</b>集線器數(shù)據(jù)表

    ESP32 WIFI SOFTAP模式可以有多個(gè)STA連接到它并讓STA相互通信嗎?

    我不清楚SOFT AP是否可以像一個(gè)普通的 AP 那樣,可以有多個(gè) STA 連接到它并讓 STA 相互通信?
    發(fā)表于 06-20 06:27

    兩塊esp32-c3如何實(shí)現(xiàn)藍(lán)牙相互通信

    各位大佬,求問兩塊esp32-c3如何實(shí)現(xiàn)藍(lán)牙相互通信?應(yīng)該參考vscode的esp-idf中哪個(gè)例程呢?
    發(fā)表于 06-11 06:18

    使用USBUART組件與主機(jī)PC通信,如果在串行端口打開的情況下終止固件,主機(jī)端為什么會(huì)報(bào)錯(cuò)?

    我正在使用 USBUART 組件與主機(jī) PC 通信,我一直在尋找某種機(jī)制來關(guān)閉 MCU 端的串行端口,或者至少通知主機(jī)我將關(guān)閉端口。 我遇到
    發(fā)表于 06-03 08:41

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測(cè)量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測(cè)量脈寬?
    發(fā)表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現(xiàn)在想用將PB1映射為TIM1_CH3N,在調(diào)用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時(shí), GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,stm32f100
    發(fā)表于 05-07 06:06

    在嵌入式設(shè)計(jì)中擴(kuò)展串行端口的入門知識(shí)

    大多數(shù)嵌入式系統(tǒng)都至少提供兩個(gè)串口。然而,有些系統(tǒng)需要更多。因此,這需要以某種方式擴(kuò)展串行端口的數(shù)量。設(shè)計(jì)人員可用的一些選擇包括 USB 到串行端口、I2C 到
    發(fā)表于 05-03 09:30 ?265次閱讀
    在嵌入式設(shè)計(jì)中擴(kuò)展<b class='flag-5'>串行</b><b class='flag-5'>端口</b>的入門知識(shí)

    STM32 USB虛擬串口正常通信PC提示無法識(shí)別的原因?

    STM32 USB虛擬串口與PC通信過程中頻繁插拔導(dǎo)致PC提示USB設(shè)備無法識(shí)別,但查看設(shè)備管理器串口的枚舉和狀態(tài)都是正常的,而且與串口調(diào)試工具的
    發(fā)表于 04-15 08:13

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼?

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼? SD卡例程能跑,但mx生成的代碼不能正常運(yùn)行,我生成代碼后是不是還要配置一些東西?(我生成后只寫了測(cè)試代碼) 問題解決了,雖然我不知道我為什么不能直接使用mx生成的代碼去操作sd卡,但我通過復(fù)制粘貼例程的代碼完成了測(cè)試。
    發(fā)表于 03-12 08:15

    什么是串行端口?有哪幾種分類?

    端口有幾種不同的分類,包括以下幾種: 1. RS-232:RS-232是一個(gè)標(biāo)準(zhǔn)的串行通信接口,最早用于連接計(jì)算機(jī)和調(diào)制解調(diào)器、打印機(jī)等外部設(shè)備。它使用9針的D型插座,每個(gè)針腳有不同的功能,如數(shù)據(jù)傳輸、數(shù)據(jù)接收、控制信號(hào)等。RS
    的頭像 發(fā)表于 02-02 15:40 ?2139次閱讀

    求助,是否可以使用PIC監(jiān)控串行端口

    是否可以使用 PIC 監(jiān)控串行端口
    發(fā)表于 01-22 06:28

    通過雙線RS485串行端口PC進(jìn)行通信,波特率設(shè)置460800 bps不起作用的原因?

    在我的一個(gè)項(xiàng)目中,我通過雙線 485 串行端口PC 進(jìn)行通信,波特率為 115200 bps,但 TESTBOARD_150PC_OUT
    發(fā)表于 01-18 10:18
    主站蜘蛛池模板: ebc5恐怖5a26房间| 无码人妻精品一区二区蜜桃色| 91热久久免费频精品动漫99 | 老湿机一区午夜精品免费福利| 成人精品视频| 2020国产成人免费视频| 亚洲国产精品热久久| 青青草狠狠干| 老牛天天晚上夜噜噜噜| 国产毛A片久久久久久无码| 男人插曲视频大全免费网站| 国产三级在线免费观看| YY600800新视觉理论私人| 日韩精品一区二区中文| 老司机亚洲精品影院| 韩国甜性涩爱| 国产精品白浆精子流水合集| www.av天堂网.com| 99精品国产免费观看视频| 伊人AV一区二区三区夜色撩人| 无人区乱码区1卡2卡三卡在线| 青柠在线观看视频在线高清| 蜜臀AV精品一区二区三区| 久久久久亚洲| 精品含羞草免费视频观看| 国产在线视精品在亚洲| 国产精品日本欧美一区二区| 一个人的免费完整在线观看HD| 甜宠溺H宝贝嗯撞PLAY啊| 日本无码人妻丰满熟妇5G影院| 男人把女人桶到高潮嗷嗷叫| 久久亚洲人成网站| 国产爱豆剧果冻传媒在线| xvideos中文版在线视频| 99久免费精品视频在线观看2| 18禁国产精品久久久久久麻豆| 诱人的秘书BD在线观看| 色宅男看片午夜大片免费看| 青柠在线观看视频在线高清完整| 欧美亚洲精品午夜福利AV| 女仆乖H调教跪趴|