女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

使用Arduino函數(shù)簡(jiǎn)化代碼

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Jeremy S. Cook ? 2022-07-01 14:36 ? 次閱讀

Arduino 板和 Arduino IDE 非常適合創(chuàng)建可以激活 LED、讀取傳感器、激活伺服或任何數(shù)量的獨(dú)特物理計(jì)算應(yīng)用程序的小代碼片段。此類操作通常開始時(shí)很簡(jiǎn)單——例如,讓計(jì)時(shí)器上的 LED 閃爍——但隨著程序的擴(kuò)展和程序員技能的提高,最終會(huì)變得相當(dāng)復(fù)雜。

組織擴(kuò)展代碼的一種出色技術(shù)是使用函數(shù),即可以根據(jù)需要從程序的其他部分(例如通過主循環(huán))調(diào)用的代碼片段。對(duì)于有經(jīng)驗(yàn)的程序員來說,這種技術(shù)可能已經(jīng)過時(shí)了,但對(duì)于那些從其他學(xué)科進(jìn)入 Arduino 的人來說,盡早接受函數(shù)范式通常會(huì)對(duì)你有好處。

聲明一個(gè)函數(shù)

在最基本的形式中,額外函數(shù)看起來幾乎與您在開始新草圖時(shí)在第 1 行和第 6 行看到的設(shè)置和循環(huán)函數(shù)一樣(圖 1)。這些函數(shù)需要在另一個(gè)函數(shù)之外聲明,并且具有唯一的名稱。事實(shí)上,主循環(huán)函數(shù)的簡(jiǎn)單復(fù)制/過去/修改可用于在您的代碼中創(chuàng)建一個(gè)新函數(shù)。

pYYBAGK-liCAR6ncAACCPjHbQWE606.png

圖 1. 新功能 copypasta。

調(diào)用函數(shù),繼續(xù)

當(dāng)然,聲明一個(gè)從不被調(diào)用且不做任何事情的函數(shù)純粹是浪費(fèi)空間,所以讓我們讓它做一些有趣的事情(圖 2)。下面的示例基本上重新格式化了 Arduino Blink 草圖以將閃爍放入一個(gè)函數(shù)中,并添加一個(gè)串行輸出以讓您知道它“延遲閃爍打開和關(guān)閉”。

pYYBAGK-liaAG2c-AACorKjjh-E545.png

雖然這對(duì)簡(jiǎn)化代碼沒有任何作用,但如果您想在主循環(huán)中的多個(gè)點(diǎn)執(zhí)行相同類型的閃爍/響應(yīng)操作,請(qǐng)考慮如何簡(jiǎn)化事情。無需編寫 5 行代碼,您只需使用 blinkAndTalk(); 調(diào)用新函數(shù)。

不需要太多用處就能看出這種簡(jiǎn)化是如何疊加起來的,尤其是在函數(shù)更復(fù)雜的情況下。這種代碼分段還有助于在其他程序中重用代碼,因?yàn)槟梢愿鶕?jù)需要在那里復(fù)制/粘貼。在 Arduino IDE 中,將函數(shù)放在最后很好,但如果您使用不同的環(huán)境(例如 PlatformIO),順序可能很重要。

函數(shù)返回值

除了將代碼簡(jiǎn)化為易于重用的塊外,函數(shù)還可以返回一個(gè)值。Arduino.cc 提供了如何執(zhí)行此操作的示例,將 myMultiplyFunction 稱為 k = myMultiplyFunction(i, j);。這里的括號(hào)不是空的,而是將變量傳遞給函數(shù)本身,并且 k 由返回結(jié)果設(shè)置;函數(shù)中的行(圖 3)。

poYBAGK-li6AChmLAACYEw43mK8701.png

圖 3.來自 Arduino 示例的代碼。

另一種傳遞值的方法是在函數(shù)中設(shè)置一個(gè)全局變量,它可以在主循環(huán)或任何你需要結(jié)果的地方使用。出于多種原因,包括生成更復(fù)雜的代碼,以及使這些函數(shù)更難重用,使用 return 是這里更好的選擇。如果您很好奇,下面顯示了如何做到這一點(diǎn)的示例:

poYBAGK-ljWAF-NuAACf_ImEEo8987.png

圖 4. 可能,但通常不推薦。

一旦您準(zhǔn)備好將幾行代碼轉(zhuǎn)移到編程上更有趣的應(yīng)用程序中,請(qǐng)記住函數(shù)是您的朋友。他們?cè)谧畛踉O(shè)置時(shí)會(huì)花一些心思,但隨著事情變得更加復(fù)雜,他們可以支付巨額紅利。

我最近寫了一段代碼,其中一小部分如下所示,接近 300 行。然而,主循環(huán)在括號(hào)內(nèi)只有 4 行,主要是為了調(diào)用一些單獨(dú)的函數(shù)。老實(shí)說,我應(yīng)該將其進(jìn)一步分解為功能塊,從而可能會(huì)減小程序的大小并為自己省去一些麻煩。規(guī)劃在這里有很長(zhǎng)的路要走。

pYYBAGK-ljuAA54WAABcVzgGRow566.png

圖 5. 對(duì)于主循環(huán)中的代碼行(注釋省略)

審核編輯:郭婷

聲明:本文內(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)投訴
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3322

    瀏覽量

    58677
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6489

    瀏覽量

    190029
收藏 人收藏

    評(píng)論

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

    免費(fèi)分享Arduino入門+進(jìn)階(全套例程+書籍)

    Arduino是一款開源電子原型平臺(tái),由硬件(單片機(jī)開發(fā)板)和軟件(編程環(huán)境)組成,旨在讓非專業(yè)用戶也能輕松入門電子制作和編程。它的核心思想是簡(jiǎn)化硬件開發(fā),通過直觀的編程和模塊化設(shè)計(jì),讓用戶快速實(shí)現(xiàn)
    的頭像 發(fā)表于 05-22 11:40 ?55次閱讀
    免費(fèi)分享<b class='flag-5'>Arduino</b>入門+進(jìn)階(全套例程+書籍)

    下一代物聯(lián)網(wǎng):芯科科技和Arduino借助邊緣AI和ML簡(jiǎn)化Matter設(shè)計(jì)和應(yīng)用

    Silicon Labs(芯科科技)和Arduino宣布建立合作伙伴關(guān)系,旨在通過Arduino Nano Matter開發(fā)板(基于芯科科技的MGM240系列多協(xié)議無線模塊)的兩階段合作來簡(jiǎn)化Matter協(xié)議的設(shè)計(jì)和應(yīng)用
    的頭像 發(fā)表于 05-19 11:15 ?131次閱讀
    下一代物聯(lián)網(wǎng):芯科科技和<b class='flag-5'>Arduino</b>借助邊緣AI和ML<b class='flag-5'>簡(jiǎn)化</b>Matter設(shè)計(jì)和應(yīng)用

    《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識(shí)

    setup() {// 在這里填寫setup函數(shù)代碼,它只會(huì)運(yùn)行一次} void loop() {// 在這里編寫loop函數(shù)代碼,它會(huì)不斷重復(fù)運(yùn)行}
    發(fā)表于 05-13 09:28

    函數(shù)指針的六個(gè)常見應(yīng)用場(chǎng)景

    函數(shù)指針在嵌入式開發(fā)中有著廣泛的應(yīng)用,它讓代碼更加靈活,減少冗余,提高可擴(kuò)展性。很多時(shí)候,我們需要根據(jù)不同的情況動(dòng)態(tài)調(diào)用不同的函數(shù),而函數(shù)指針正是實(shí)現(xiàn)這一需求的重要工具。本文將介紹六個(gè)
    的頭像 發(fā)表于 04-07 11:58 ?322次閱讀
    <b class='flag-5'>函數(shù)</b>指針的六個(gè)常見應(yīng)用場(chǎng)景

    分析C語言代碼結(jié)構(gòu)的設(shè)計(jì)問題

    項(xiàng)目中遇到的,我拿過來給簡(jiǎn)化了一下。 其實(shí)這樣的代碼可能會(huì)導(dǎo)致內(nèi)存泄漏,如果第一個(gè) malloc 申請(qǐng)成功,第二個(gè) malloc 申請(qǐng)失敗,直接 return -1 退出函數(shù),就會(huì)導(dǎo)致前面申請(qǐng)的內(nèi)存沒有釋放,長(zhǎng)期運(yùn)行,極有可能導(dǎo)
    的頭像 發(fā)表于 02-11 09:31 ?295次閱讀

    用于 SPI 絕對(duì)編碼器的 Arduino 示例代碼

    作者:Damon Tarry, Design Applications Engineer, Same Sky 本 Arduino 示例代碼教程旨在為用戶提供一個(gè)堅(jiān)實(shí)的起點(diǎn),以便通過串行外設(shè)接口
    的頭像 發(fā)表于 01-26 21:35 ?717次閱讀
    用于 SPI 絕對(duì)編碼器的 <b class='flag-5'>Arduino</b> 示例<b class='flag-5'>代碼</b>

    C語言如何處理函數(shù)的返回值

    當(dāng)你在函數(shù)的最后寫上 return 0 的時(shí)候,它是如何返回給調(diào)用函數(shù)的? 比如 test 函數(shù),為了待會(huì)更好的看懂匯編代碼,我寫成了 return 1234。 處理
    的頭像 發(fā)表于 01-16 09:21 ?342次閱讀

    HAL庫(kù)在Arduino平臺(tái)上的使用

    ,適合于快速原型開發(fā)和教育。HAL(硬件抽象層)庫(kù)是一種在Arduino平臺(tái)上使用的軟件庫(kù),它提供了一種標(biāo)準(zhǔn)化的方式來訪問硬件功能,使得開發(fā)者可以編寫更通用、更可移植的代碼。 1. 什么是HAL庫(kù) HAL庫(kù)是硬件抽象層庫(kù)的簡(jiǎn)稱,它是一種軟件架構(gòu),用于將硬件特定的
    的頭像 發(fā)表于 12-02 14:04 ?1388次閱讀

    基于Arduino的串口通信項(xiàng)目

    基于Arduino的串口通信項(xiàng)目涉及多個(gè)方面,包括硬件連接、軟件編程、串口參數(shù)配置等。 一、硬件準(zhǔn)備 Arduino開發(fā)板 :確保你有一塊Arduino開發(fā)板,如Arduino Uno
    的頭像 發(fā)表于 11-22 09:24 ?1903次閱讀

    SUMIF函數(shù)與SUMIFS函數(shù)的區(qū)別

    SUMIF函數(shù)和SUMIFS函數(shù)都是Excel中用于條件求和的函數(shù),它們可以幫助用戶根據(jù)特定的條件對(duì)數(shù)據(jù)進(jìn)行求和。盡管它們的基本功能相似,但在使用場(chǎng)景和功能上存在一些差異。以下是對(duì)這兩個(gè)函數(shù)
    的頭像 發(fā)表于 10-30 09:51 ?6932次閱讀

    Python常用函數(shù)大全

    在 Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識(shí)這些神器,讓你的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?766次閱讀

    開源項(xiàng)目!基于 Arduino DIY 漂亮的宏機(jī)械鍵盤

    大大簡(jiǎn)化你的工作流程。 舉個(gè)例子,你可以將宏鍵盤上的一個(gè)按鍵設(shè)置為 CTRL+C 快捷鍵的映射,這樣,在需要復(fù)制文本或文件時(shí),只需一鍵即可輕松完成。當(dāng)你按下這個(gè)按鍵時(shí),內(nèi)置的 Arduino 會(huì)立即
    發(fā)表于 08-19 17:02

    面試???1:函數(shù)指針與指針函數(shù)、數(shù)組指針與指針數(shù)組

    函數(shù)是指返回值為指針的函數(shù)。語法:返回值類型*函數(shù)名(參數(shù)列表)。示例代碼:#include#includeint*getNumber(inta,intb){in
    的頭像 發(fā)表于 08-10 08:11 ?1301次閱讀
    面試常考+1:<b class='flag-5'>函數(shù)</b>指針與指針<b class='flag-5'>函數(shù)</b>、數(shù)組指針與指針數(shù)組

    怎樣用Arduino測(cè)試鋰電池容量

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

    能將ESP8266連接到arduino UNO上,使用mesh組網(wǎng)嗎?

    現(xiàn)在已將ESP8266連接到了arduino,并且成功驅(qū)動(dòng),但是有個(gè)問題就是組網(wǎng)的問題,想使用mesh,但是還有有些疑問。1、將帶有mesh的固件燒錄到ESP8266中,就能自動(dòng)尋找節(jié)點(diǎn)了嗎?或者是下載mesh的庫(kù)函數(shù),從arduino
    發(fā)表于 07-11 06:46