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

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

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

怎樣用VisualStudio調(diào)試Arduino程序

454398 ? 來源:工程師吳畏 ? 2019-08-02 14:12 ? 次閱讀

監(jiān)控GPIO引腳

使用GPIO引腳作為輸入時,可能會遇到意外行為。為了更好地了解正在發(fā)生的事情,您可以監(jiān)控Arduino端口。

雖然可以通過使用控制臺輸出來打印引腳狀態(tài)來監(jiān)視Arduino IDE的端口,但VisualMicro可以為您執(zhí)行此操作,并生成一個顯示每個引腳狀態(tài)的方便圖表。

首先啟用監(jiān)視器:

怎樣用VisualStudio調(diào)試Arduino程序

下次上傳程序時,應(yīng)顯示以下面板:

每個GPIO引腳用一個正方形表示,每個方塊的顏色表示引腳狀態(tài)。紅色表示低狀態(tài),綠色表示高狀態(tài)??梢詾?a href="http://ttokpm.com/analog/" target="_blank">模擬引腳生成類似的圖表。

檢查程序流程

你可能已經(jīng)在代碼中輸入了控制臺輸出測試您的應(yīng)用程序是否達到特定的代碼行。雖然你可以做到這一點,但有一個更簡單的解決方案。您可以使用不會暫停程序執(zhí)行的斷點。相反,它會在到達時向控制臺輸出一行。

要添加斷點,請右鍵單擊并選擇“操作”。應(yīng)出現(xiàn)一個面板,允許您在到達斷點時輸入打印到控制臺的文本:

設(shè)置您想要連接到斷點的消息。

要啟用“經(jīng)典調(diào)試”,到達斷點將暫停程序執(zhí)行,取消選中“繼續(xù)執(zhí)行”復(fù)選框。

打印和檢查變量值

VisualMicro調(diào)試器與Visual Studio調(diào)試器的工作方式不同,因為應(yīng)用程序不是在開發(fā)它們的計算機上執(zhí)行的。但是,您仍然可以使調(diào)試器顯示變量值以輕松確定其行為。

設(shè)置其他顯示的一種方法是使用上面的斷點。您不僅可以在遇到斷點時設(shè)置自定義文本輸出,還可以通過在大括號中添加變量名稱來向文本添加變量值:

使用大括號中的命令向斷點添加變量。

當(dāng)您在Arduino上運行代碼時,輸出面板應(yīng)顯示您的調(diào)試消息:

您還會注意到VisualMicro生成一個斷點中使用的每個變量的表:

表格應(yīng)自動顯示當(dāng)您調(diào)試代碼時,每個斷點設(shè)置為打印變量值。如果沒有,請嘗試打開串行監(jiān)視器,然后重新上傳代碼。

更改變量值

許多IDE允許您在更改變量值時該程序暫停。您必須從上面更新斷點定義才能啟用此功能。將“=?”附加到您希望能夠在調(diào)試期間更改的變量名稱:

將代碼重新上傳到Arduino后,可以使用之前的表來更改值。但是,斷點必須在程序到達時停止。

調(diào)試代碼:基本任務(wù)

這個基本指南教你一切你需要知道的事情開始在VisualMicro中調(diào)試Arduino應(yīng)用程序。這樣可以更容易理解應(yīng)用程序中發(fā)生的錯誤并編寫更好的代碼。

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

    關(guān)注

    187

    文章

    6461

    瀏覽量

    186523
  • visualstudio
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    2321
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

    怎樣用Arduino測試鋰電池容量

    本文詳細(xì)介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino程序代碼。
    的頭像 發(fā)表于 07-30 09:14 ?674次閱讀
    <b class='flag-5'>怎樣用</b><b class='flag-5'>Arduino</b>測試鋰電池容量

    Arduino放回了一個空的schetch,重新打開了程序不斷重啟的原因?

    . 我arduino重新加載,就像照片2一樣,但它總是以相同的方式重新啟動。 我將代碼切成兩半,重新加載,它有效。 我恢復(fù)原始代碼,加載它,它有效。 我將相同的程序與加載器放回原處,它會不斷重新啟動
    發(fā)表于 07-10 07:22

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫,例如我此時需要使用arduino的第三方庫blinker,怎樣使用
    發(fā)表于 06-12 07:21

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?

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

    stm32f100怎樣用重映射功能?

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

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

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

    如何使用linux下gdb來調(diào)試python程序

    如何使用linux下gdb來調(diào)試python程序? 在Linux下,可以使用GDB(GNU調(diào)試器)來調(diào)試Python程序。GDB是一個強大的
    的頭像 發(fā)表于 01-31 10:41 ?2392次閱讀

    怎樣用表來判斷加熱管的好壞?

    怎樣用表來判斷加熱管的好壞? 萬表是電工常用的測量儀器,它可以用來判斷加熱管的好壞。加熱管是一種常見的加熱元件,廣泛應(yīng)用于家電、機械設(shè)備和工業(yè)生產(chǎn)中。在選擇和使用加熱管時,我們需要了解其電阻值
    的頭像 發(fā)表于 12-20 17:21 ?4825次閱讀

    USB調(diào)試模式是什么意思?USB調(diào)試模式有什么?

    USB調(diào)試模式是什么意思?USB調(diào)試模式有什么? USB調(diào)試模式是一種在Android設(shè)備上進行開發(fā)、測試和調(diào)試的模式。當(dāng)設(shè)備處于USB
    的頭像 發(fā)表于 12-11 11:06 ?1w次閱讀

    無線通信:怎樣用電磁波表示1和0

    為什么頻率越高,能攜帶的信息就越多?以數(shù)字信號為例,信息就是一串串的1和0,所以先搞清楚怎樣用電磁波表示1和0。
    發(fā)表于 12-05 14:44 ?1702次閱讀
    無線通信:<b class='flag-5'>怎樣用</b>電磁波表示1和0

    ADAU1452做FFT分析,怎樣設(shè)定取樣點的數(shù)量?

    請問,我想用ADAU1452做FFT分析,怎樣設(shè)定取樣點的數(shù)量,還有就是怎樣用單片機讀出分析得到的復(fù)數(shù)結(jié)果數(shù)組?謝謝!
    發(fā)表于 11-29 06:42

    怎樣用ADAU1761設(shè)計DRC的壓縮/擴展?

    請問怎樣用ADAU1761設(shè)計DRC的壓縮/擴展。我在SigmaStudio 4.5的模塊中只找到RMS。如果ADAU1761設(shè)計DRC要怎樣
    發(fā)表于 11-28 06:41

    運算放大器的THD+N參數(shù)應(yīng)該怎樣用?

    %。僅有AD8066在1MHz時有80dbC,但是AD8066容性負(fù)載驅(qū)動力不強。由于需要緩沖的是高精密度的信號,頻率可到1MHz。我想請問大家: 1、運算放大器的THD+N指標(biāo)應(yīng)該怎樣用呢?是不是
    發(fā)表于 11-17 12:00