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

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

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

STM32、Arduino、樹(shù)莓派開(kāi)發(fā)方式差異大嗎

安芯教育科技 ? 來(lái)源:嵌入式專欄 ? 2025-01-02 11:33 ? 次閱讀

最近看到有網(wǎng)友問(wèn):STM32Arduino、樹(shù)莓派開(kāi)發(fā)方式差異大嗎? 要說(shuō)相同點(diǎn),它們之間也有很多相同點(diǎn)。但你要說(shuō)他們之間開(kāi)發(fā)的差異,其實(shí)也蠻大的。

STM32、Arduino、樹(shù)莓派三者異同點(diǎn)

STM32、Arduino、樹(shù)莓派是三種不同的硬件平臺(tái),各自具有獨(dú)特的特點(diǎn)和適用場(chǎng)景。

一、硬件特性

硬件平臺(tái) STM32 Arduino 樹(shù)莓派
類型 微控制器 開(kāi)源電子原型平臺(tái) 基于Linux的單板計(jì)算機(jī)
核心 ARM Cortex-M內(nèi)核 Atmel 8位微處理器 Broadcom ARM架構(gòu)處理器
性能 高性能、低功耗 較低功耗、易于上手 較高計(jì)算能力
外設(shè)接口 豐富(如UART、SPI、I2C等) 豐富接口,易于擴(kuò)展 多種接口和通信協(xié)議

二、軟件與編程

硬件平臺(tái) STM32 Arduino 樹(shù)莓派
編程語(yǔ)言 C/C++ 簡(jiǎn)化類C語(yǔ)言(基于Wiring) Python、C++、多種Linux發(fā)行版支持
開(kāi)發(fā)環(huán)境 多種開(kāi)發(fā)工具鏈 Arduino IDE 多種Linux開(kāi)發(fā)環(huán)境,官方Raspberry Pi OS
軟件生態(tài) 豐富的軟件庫(kù)和社區(qū)支持 豐富的開(kāi)源項(xiàng)目和教程 廣泛的軟件支持和社區(qū)資源

三、應(yīng)用場(chǎng)景

硬件平臺(tái) STM32 Arduino 樹(shù)莓派
適用領(lǐng)域 嵌入式系統(tǒng)、工業(yè)自動(dòng)化無(wú)線通信 教育、創(chuàng)客、業(yè)余愛(ài)好、快速原型開(kāi)發(fā) 物聯(lián)網(wǎng)、多媒體中心、教育、開(kāi)發(fā)學(xué)習(xí)等
項(xiàng)目實(shí)例 智能車、無(wú)人機(jī)、智能家居 交互式藝術(shù)裝置、自動(dòng)化控制等 物聯(lián)網(wǎng)應(yīng)用、智能小車、人臉識(shí)別等

四、易用性與學(xué)習(xí)曲線

STM32:需要一定的電子和嵌入式系統(tǒng)基礎(chǔ)知識(shí),學(xué)習(xí)曲線較陡,但功能強(qiáng)大,適合復(fù)雜項(xiàng)目。

Arduino:上手容易,無(wú)需復(fù)雜配置,適合初學(xué)者和快速原型開(kāi)發(fā),但功能和性能相對(duì)受限。

樹(shù)莓派:具有較高的計(jì)算能力,基于Linux系統(tǒng),易于學(xué)習(xí)和使用,適合各種計(jì)算機(jī)項(xiàng)目和物聯(lián)網(wǎng)應(yīng)用。

五、價(jià)格與成本

STM32:根據(jù)型號(hào)和配置的不同,價(jià)格有所差異,但通常較為親民,適合大規(guī)模生產(chǎn)。

Arduino:價(jià)格相對(duì)較低,適合個(gè)人和小型項(xiàng)目使用。

樹(shù)莓派:價(jià)格根據(jù)型號(hào)和配置的不同而有所變化,但相對(duì)于傳統(tǒng)桌面計(jì)算機(jī)來(lái)說(shuō),價(jià)格較為低廉。

STM32、Arduino、樹(shù)莓派三者點(diǎn)燈程序

我們這里結(jié)合源碼給大家看下STM32、Arduino、樹(shù)莓派三者的差異。 STM32 點(diǎn)燈程序 STM32是Cortex-M內(nèi)核,它的點(diǎn)燈程序和其他絕大部分Cortex-M內(nèi)核單片機(jī)大同小異。 主要包含、配置時(shí)鐘、引腳等信息,然后通過(guò)延時(shí)實(shí)現(xiàn)LED燈的亮滅。

//假設(shè)LED連接到GPIOA的Pin5
#define LED_PIN GPIO_PIN_5
#define LED_PORT GPIOA


// GPIO初始化函數(shù)(由STM32CubeMX生成)
void MX_GPIO_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};


    // GPIOA時(shí)鐘使能
    __HAL_RCC_GPIOA_CLK_ENABLE();


    // 配置GPIOA Pin5為輸出模式
    GPIO_InitStruct.Pin = LED_PIN;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct);
}


int main(void)
{
    // HAL庫(kù)初始化
    HAL_Init();
    // 配置系統(tǒng)時(shí)鐘
    SystemClock_Config();
    // 初始化所有配置的外設(shè)
    MX_GPIO_Init();


    while (1)
    {
        // 點(diǎn)亮LED
        HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET);
        // 延時(shí)500毫秒
        HAL_Delay(500);
        // 熄滅LED
        HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET);
        // 延時(shí)500毫秒
        HAL_Delay(500);
    }
}
Arduino 點(diǎn)燈程序 Arduino封裝了很多現(xiàn)成的庫(kù),我們只需要調(diào)用庫(kù)即可。再加上Arduino是一個(gè)開(kāi)源的硬件和軟件平臺(tái),使得制作電子項(xiàng)目變得更加容易。
//假設(shè)LED連接到引腳13
const int ledPin = 13;


void setup() {
  // 初始化數(shù)字引腳為輸出模式
  pinMode(ledPin, OUTPUT);
}


void loop() {
  // 點(diǎn)亮LED
  digitalWrite(ledPin, HIGH);
  // 延時(shí)500毫秒
  delay(500);
  // 熄滅LED
          digitalWrite(ledPin, LOW);
  // 延時(shí)500毫秒
  delay(500);
}
樹(shù)莓派點(diǎn)燈程序 樹(shù)莓派通常是運(yùn)行 Linux 操作系統(tǒng),而在樹(shù)莓派上開(kāi)發(fā),可以有多種編程語(yǔ)言。 現(xiàn)在流行Python語(yǔ)言,且樹(shù)莓派也支持,為了更簡(jiǎn)單方便,很多人會(huì)選擇Python來(lái)開(kāi)發(fā)。
import RPi.GPIO as GPIO
import time


# 使用BCM GPIO編號(hào)
GPIO.setmode(GPIO.BCM)
# 假設(shè)LED連接到GPIO17
LED_PIN = 17


# 設(shè)置GPIO引腳為輸出模式
GPIO.setup(LED_PIN, GPIO.OUT)


try:
    while True:
        # 點(diǎn)亮LED
        GPIO.output(LED_PIN, GPIO.HIGH)
        # 延時(shí)500毫秒
        time.sleep(0.5)
        # 熄滅LED
        GPIO.output(LED_PIN, GPIO.LOW)
        # 延時(shí)500毫秒
        time.sleep(0.5)
except KeyboardInterrupt:
    # 捕獲Ctrl+C以清理GPIO設(shè)置
    pass
finally:
    # 清理所有GPIO設(shè)置
    GPIO.cleanup()
最后,這三種平臺(tái),都是目前比較流行的硬件平臺(tái),大家可以根據(jù)自己喜好進(jìn)行選擇。
聲明:本文內(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)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10905

    瀏覽量

    356446
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6471

    瀏覽量

    187258
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    117

    文章

    1708

    瀏覽量

    105703

原文標(biāo)題:STM32、Arduino、樹(shù)莓派開(kāi)發(fā)方式差異大嗎?

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    樹(shù)莓教程 詳解樹(shù)莓驅(qū)動(dòng)OLED模塊

    提供樹(shù)莓、STM32、arduino例程;連接樹(shù)莓的時(shí)候,選擇用7PIN排線連接,請(qǐng)參考下方
    的頭像 發(fā)表于 05-06 09:32 ?5564次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>教程 詳解<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>驅(qū)動(dòng)OLED模塊

    求教:樹(shù)莓arduino的通信

    想讓樹(shù)莓arduino的上位機(jī)。 用的是樹(shù)莓2B 和arduino UNO。第一步:在
    發(fā)表于 09-23 10:01

    如何使樹(shù)莓Arduino藍(lán)牙通信?

    樹(shù)莓三代自帶藍(lán)牙模塊 如何使樹(shù)莓Arduino藍(lán)牙通信,Arduino采集的數(shù)據(jù)傳送到
    發(fā)表于 06-05 05:55

    樹(shù)莓在物聯(lián)網(wǎng)開(kāi)發(fā)的應(yīng)用

    。一個(gè)多G的速度,二三百的價(jià)格,絕對(duì)秒殺Arduino的各種官方版了。stm32其實(shí)是個(gè)尷尬的選擇,論性能遠(yuǎn)不如樹(shù)莓,論開(kāi)發(fā)難度可能是最麻
    發(fā)表于 08-03 06:38

    STM32的三種開(kāi)發(fā)方式

    1 STM32的三種開(kāi)發(fā)方式通常新手在入門(mén)STM32的時(shí)候,首先都要先選擇一種要用的開(kāi)發(fā)方式,不同的開(kāi)發(fā)方式會(huì)導(dǎo)致你編程的架構(gòu)是完全不一樣的
    發(fā)表于 08-05 06:56

    使用樹(shù)莓搭建stm32開(kāi)發(fā)環(huán)境踩過(guò)的坑以及碰到的問(wèn)題

    使用樹(shù)莓搭建stm32開(kāi)發(fā)環(huán)境踩了很多坑,下面主要是記錄一下踩過(guò)的坑,以及碰到的問(wèn)題。##開(kāi)發(fā)方式的選擇1.使用Eclipse+GDB+O
    發(fā)表于 08-24 07:47

    樹(shù)莓Arduino UNO是怎樣對(duì)接的

    樹(shù)莓Arduino UNO是怎樣對(duì)接的?有哪幾種方式?最容易實(shí)現(xiàn)的方式是哪一種?
    發(fā)表于 09-07 06:08

    如何選擇Arduino、Stm32、樹(shù)莓C++、Python及LabVIEW

    如何選擇Arduino、Stm32樹(shù)莓C++、Python及LabVIEW
    發(fā)表于 10-13 07:40

    STM32的三種開(kāi)發(fā)方式分享

    STM32的三種開(kāi)發(fā)方式通常新手在入門(mén)STM32的時(shí)候,首先都要先選擇一種要用的開(kāi)發(fā)方式,不同的開(kāi)發(fā)方式會(huì)導(dǎo)致你編程的架構(gòu)是完全不一樣的。一
    發(fā)表于 12-01 07:59

    FPGA/arduino/STM32/樹(shù)莓的相關(guān)資料推薦

    FPGA,arduino,STM32,樹(shù)莓四者的簡(jiǎn)介FPGA首先說(shuō)一下FPGA,FPGA叫做可編程門(mén)陣列。它的邏輯門(mén),時(shí)序等都由開(kāi)發(fā)者自己
    發(fā)表于 02-09 06:14

    基于Arduino樹(shù)莓的智能小車開(kāi)發(fā)

    Arduino樹(shù)莓等開(kāi)源硬件和傳感器,即可進(jìn)行智能車的快速開(kāi)發(fā)。Arduino樹(shù)莓
    發(fā)表于 11-03 10:35 ?49次下載
    基于<b class='flag-5'>Arduino</b>和<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>的智能小車<b class='flag-5'>開(kāi)發(fā)</b>

    樹(shù)莓各版本差異對(duì)照表.pdf

    樹(shù)莓各版本差異對(duì)照表
    發(fā)表于 05-07 14:57 ?0次下載

    樹(shù)莓與51單片機(jī)和arduinoSTM32的比較

    本文檔的主要內(nèi)容詳細(xì)介紹的是樹(shù)莓、51、arduino樹(shù)莓幾種常用芯片及開(kāi)源硬件的比較資料免費(fèi)下載。
    發(fā)表于 08-20 17:31 ?19次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>與51單片機(jī)和<b class='flag-5'>arduino</b>與<b class='flag-5'>STM32</b>的比較

    如何使用樹(shù)莓實(shí)現(xiàn)嵌入式Linux開(kāi)發(fā)教學(xué)的探索

    智能家居與物聯(lián)網(wǎng)的思路,并與傳統(tǒng)的開(kāi)發(fā)方式比較,顯示其突出的實(shí)用價(jià)值。分析樹(shù)莓的軟硬件和全球資源,介紹智能小車的教學(xué)實(shí)踐,顯示其在平臺(tái)選型時(shí)的優(yōu)勢(shì)所在。最終得出樹(shù)莓
    發(fā)表于 07-20 17:17 ?27次下載
    如何使用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>實(shí)現(xiàn)嵌入式Linux<b class='flag-5'>開(kāi)發(fā)</b>教學(xué)的探索

    樹(shù)莓Arduino的區(qū)別是什么

    在當(dāng)今的科技世界中,樹(shù)莓(Raspberry Pi)和Arduino是兩個(gè)經(jīng)常被提及的名字。它們都是開(kāi)源硬件平臺(tái),但它們的目標(biāo)、功能和用途卻大相徑庭。 1. 目標(biāo)和用途 樹(shù)莓
    的頭像 發(fā)表于 11-11 11:14 ?881次閱讀