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

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

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

是先學(xué)STM8 還是學(xué)STM32?

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-04 11:05 ? 次閱讀

有朋友問(wèn):我學(xué)習(xí)過(guò)51,接下來(lái)我是先學(xué)習(xí)STM8,還是STM32呢?

1寫(xiě)在前面

想要明白這個(gè)問(wèn)題,其實(shí)就需要明白STM8和STM32之間有些什么差異,包括MCU基本信息、開(kāi)發(fā)難度、以及應(yīng)用場(chǎng)景等。

站在客觀的角度來(lái)說(shuō),STM8比STM32學(xué)起來(lái)更容易,C語(yǔ)言功底還不錯(cuò)的朋友,直接上STM32也不是問(wèn)題。

從大的方向來(lái)說(shuō),當(dāng)你對(duì)一種MCU掌握的比較透徹,再學(xué)其他型號(hào)、其他廠商的MCU,相對(duì)來(lái)說(shuō),上手都要容易的多。

針對(duì)本文問(wèn)題,我下面講述一下相關(guān)知識(shí)。

2

STM8和STM32內(nèi)核差異

STM8 CPU 是一種專有架構(gòu),它保持了以前的 ST7 內(nèi)核的傳統(tǒng),同時(shí)在 8 位 CPU 效率和代碼密度方面實(shí)現(xiàn)了突破。

STM32 圍繞行業(yè)標(biāo)準(zhǔn) ARM Cortex-M 32 位內(nèi)核構(gòu)建,并受益于與 ARM 處理器有關(guān)的開(kāi)發(fā)工具和軟件解決方案的完整生態(tài)產(chǎn)業(yè)環(huán)境。

盡管它們被認(rèn)為是兩種完全不同的處理器,但它們?cè)诩軜?gòu)方面實(shí)際有許多相似之處。

下面對(duì)比STM8S 和 STM32F1 (Cortex-M3)這兩種內(nèi)核差異:

兩種內(nèi)核均基于哈佛架構(gòu),它們采用 3 級(jí)流水線執(zhí)行,可將執(zhí)行時(shí)間降至最低,對(duì)于 STM8S,時(shí)鐘速度高達(dá) 24 MHz,對(duì)于 STM32F1系列,時(shí)鐘速度高達(dá) 72 MHz。

在代碼密度方面,它們均有優(yōu)異的表現(xiàn),這歸功于 STM8S 系列的 8 位CISC 指令集以及 STM32F1系列的 Cortex 內(nèi)核引入的 16 位Thumb-2 模式。

3

片上外設(shè)差異

ST 8位和 32位 MCU 產(chǎn)品線之間的片上外設(shè)具有一致性,大多數(shù)基本 MCU 外設(shè)均定義和構(gòu)建為可從一個(gè)產(chǎn)品系列移植到另一個(gè)產(chǎn)品系列。

這通過(guò)將 8 位外設(shè)簡(jiǎn)單但有效地修改為 32 位字來(lái)實(shí)現(xiàn)。這樣做的好處是可節(jié)約成本和功耗,并且資源易于了解。

如果需要更高性能,可在系統(tǒng)層面通過(guò)更寬的總線和 DMA 控制器對(duì)資源加以補(bǔ)充。在了解了外設(shè)的工作原理后,可以將外設(shè)應(yīng)用到 STM8S 和 STM32 系列,從而加速兩種器件之間的轉(zhuǎn)換。

ARM 處理器和外設(shè)符合 AMBA 總線規(guī)范,采用 32 位數(shù)據(jù)總線,而 STM8S 器件使用更為簡(jiǎn)單但有效的8 位總線標(biāo)準(zhǔn)。從功能角度看,它們僅在以下方面存在差異:

寄存器大?。?8 位與 16 或 32 位

直接取決于 CPU 運(yùn)行速度的最大時(shí)鐘頻率

DMA,可通過(guò)簡(jiǎn)單數(shù)據(jù)管理減輕 CPU 的負(fù)荷并提高最大數(shù)據(jù)吞吐量

一些產(chǎn)品特定功能,如 I/O 端口管理

對(duì)比STM8S 和 STM32F1 的 SPI 框圖:

SPI寄存器:

從上面框圖和寄存器可以看出:除了幾個(gè)有區(qū)別的位和寄存器大小外,寄存器和位的名稱以及在寄存器中的位置都是相似的。

4

系統(tǒng)外設(shè)

當(dāng)今的 MCU 是復(fù)雜的 SoC(片上系統(tǒng)),其中不僅包含許多外設(shè),還包含一些高級(jí)系統(tǒng)特性,旨在縮減物料清單或增強(qiáng)系統(tǒng)的安全性和穩(wěn)定性。

1.復(fù)位

STM8S 和 STM32 基本具有相同的復(fù)位電路,僅有細(xì)微的差異:

NRST 引腳既是輸入也是具有內(nèi)置上拉電阻的開(kāi)漏輸出。為實(shí)現(xiàn) EMS(電磁敏感度)魯棒性,插入了一個(gè)濾波器以避免毛刺傳播到數(shù)字電路中。雙向復(fù)位有三個(gè)優(yōu)點(diǎn):

對(duì)于多 MCU 系統(tǒng),雙向復(fù)位可確保在啟動(dòng)或熱復(fù)位時(shí)所有子處理器均正確同步

對(duì)于其它 IC,在系統(tǒng)層面還可以使用 MCU 內(nèi)嵌的電壓監(jiān)控器(上電復(fù)位和欠壓復(fù)位)

當(dāng)生成假內(nèi)部復(fù)位時(shí),在調(diào)試過(guò)程中會(huì)有很大幫助

2.時(shí)鐘

STM8和STM32時(shí)鐘都具有很強(qiáng)大的功能,特別是最近推出的STM32G0具有高精度內(nèi)部時(shí)鐘,可以省去外部晶振,減少硬件PCB。

STM8不具備倍頻功能,各方面相對(duì)要弱一點(diǎn)。STM32具有倍頻、外設(shè)時(shí)鐘分頻等強(qiáng)大功能。同時(shí),STM8和32都具有獨(dú)立外設(shè)時(shí)鐘使能功能,以降低功耗。

看下STM32F1時(shí)鐘樹(shù),就大概了解有哪些功能了:

3.存儲(chǔ)器

兩種產(chǎn)品線均基于非易失性存儲(chǔ)器并具有一個(gè)選項(xiàng)字節(jié)加載器。此機(jī)制取代了用于 MCU 上電配置的傳統(tǒng)熔絲位:用戶可以在編程時(shí)選擇多種選項(xiàng),這些選項(xiàng)會(huì)隨程序二進(jìn)制映像一起寫(xiě)入。

所有新型微控制器都具有以下幾個(gè)特性:

暫停、停止或待機(jī)模式下的復(fù)位:可在 MCU 意外進(jìn)入低功耗模式時(shí)避免發(fā)生死鎖情況,適用于不能處理此類配置的應(yīng)用

硬件/軟件看門狗,可以在復(fù)位之后立即通過(guò)硬件啟動(dòng)看門狗

存儲(chǔ)器讀保護(hù),用于防止對(duì)程序內(nèi)容的竊取

存儲(chǔ)器寫(xiě)保護(hù),用于保護(hù)存儲(chǔ)器中包含關(guān)鍵代碼的部分。通常,這適用于自舉代碼或IAP(應(yīng)用內(nèi)編程)驅(qū)動(dòng)程序

這些選項(xiàng)可自動(dòng)使能安全性和可靠性特性,這樣即使在 CPU 獲取第一個(gè)指令之前出現(xiàn)干擾或攻擊,應(yīng)用也可以恢復(fù)。

STM8S 和 STM32 器件具有嵌入式自舉加載器,通過(guò)它可以使用板上串行接口(例如 UART)重新燒寫(xiě)內(nèi)部 Flash。隨后可以將任何具有串行通訊接口的 PC 用作編程工具,來(lái)燒寫(xiě)或更新 Flash 以及數(shù)據(jù) EEPROM 存儲(chǔ)器的內(nèi)容。 ST 提供了一個(gè)軟件實(shí)用程序來(lái)執(zhí)行自舉加載器支持的所有操作。

當(dāng)然,還有更多系統(tǒng)特性相關(guān)的內(nèi)容,比如安全性、低功耗方面。這些設(shè)計(jì)都具有高度一致性。

5

軟件

STM8和STM32除了上面描述的一些內(nèi)容具有高度一致性之外,其實(shí),對(duì)應(yīng)我們軟件開(kāi)發(fā)工程師來(lái)說(shuō),軟件才是最為關(guān)心的一點(diǎn)。

在STM8和STM32產(chǎn)品設(shè)計(jì)之初,工程師早就考慮過(guò)這個(gè)問(wèn)題。因?yàn)槎呦到y(tǒng)、內(nèi)核及外設(shè)都具有一致性,所以軟件庫(kù)也是設(shè)計(jì)具有一致性。

1.寄存器、庫(kù)開(kāi)發(fā)

這個(gè)我就不說(shuō)了,從51過(guò)來(lái)的都知道,對(duì)于寄存器比較少的MCU來(lái)說(shuō),不是問(wèn)題。對(duì)于STM8來(lái)說(shuō),其實(shí)我覺(jué)得還好,使用寄存器開(kāi)發(fā),就是需要更多時(shí)間了解寄存器。

我其實(shí)不是很建議大家使用寄存器開(kāi)發(fā),現(xiàn)在STM8有標(biāo)準(zhǔn)外設(shè)庫(kù),庫(kù)的API函數(shù)接口也容易理解,直接拿來(lái)省事,也能方便理解寄存器。

那么對(duì)于STM32這種有大量寄存器的MCU,我同樣也是不建議大家直接使用寄存器開(kāi)發(fā),部分功能可以針對(duì)庫(kù)優(yōu)化成寄存器。

2.STM8、32CubeMX工具

STM8CubeMX和STM32CubeMX這兩個(gè)工具我不止一次在公眾號(hào)提到,ST官方的目前的趨勢(shì)就是希望用戶使用這個(gè)工具來(lái)開(kāi)發(fā)。

而且,大家已經(jīng)發(fā)現(xiàn),STM32有些新出來(lái)的MCU是沒(méi)有標(biāo)準(zhǔn)外設(shè)庫(kù)了。所以,這兩個(gè)工具建議大家也要學(xué)習(xí)。

STM8CubeMX目前更新至V1.3.0,只能提供配置,方便了解MCU使用資源情況,還不具備自動(dòng)生成代碼功能,不過(guò)我覺(jué)得后面應(yīng)該具有這個(gè)功能。

所以:如果基礎(chǔ)不怎么好,建議先STM8,等學(xué)到一定基礎(chǔ)可以再學(xué)STM32。如果自認(rèn)基礎(chǔ)還可以,C語(yǔ)言也行,那么直接上STM32不成問(wè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)注

    2258

    文章

    10828

    瀏覽量

    352492
  • ARM處理器
    +關(guān)注

    關(guān)注

    6

    文章

    360

    瀏覽量

    41517
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1132

    瀏覽量

    49741
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

    56528
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    學(xué)STM32為什么首選F103C8T6?

    STM32F103C8T6是STMicroelectronics(ST)推出的一款基于ARMCortex-M3內(nèi)核的32位微控制器單片機(jī)(MCU)。它具有一系列優(yōu)勢(shì)和廣泛的應(yīng)用場(chǎng)景。這里就來(lái)介紹一下
    的頭像 發(fā)表于 05-18 08:04 ?2870次閱讀
    <b class='flag-5'>學(xué)</b><b class='flag-5'>STM32</b>為什么首選F103C<b class='flag-5'>8</b>T6?

    請(qǐng)問(wèn)STM8如何與STLINK連接?

    幫別人寫(xiě)一個(gè)簡(jiǎn)單的程序...用的是STM8S103F3PMCU 手里有STM32F0308Discovery..下載程序的時(shí)候該如何用 Discovery上自帶的STLINK給STM8下載程序呢?
    發(fā)表于 05-17 07:21

    請(qǐng)問(wèn)STM8stm32的區(qū)別是什么?

    菜鳥(niǎo)群求STM8stm32的區(qū)別
    發(fā)表于 05-16 06:34

    stm8stm32有什么不同?

    stm8stm32有什么不同
    發(fā)表于 05-14 07:35

    stm8蜂鳴器引腳關(guān)閉時(shí)是什么狀態(tài)?

    請(qǐng)教一下STM8的BEEP引腳(PD4) 第一個(gè)問(wèn)題:需要配置該引腳為推挽輸出才能用蜂鳴器嗎?還是直接配置蜂鳴器相關(guān)寄存器就可以用了? 第二個(gè)問(wèn)題:關(guān)閉蜂鳴器以后,該引腳恢復(fù)到什么模式,是懸浮輸入
    發(fā)表于 05-13 07:25

    測(cè)試STM8的UART的時(shí)候,STM8S003好像燒不進(jìn)程序了,為什么?

    小弟剛學(xué)STM8,遇到個(gè)問(wèn)題,望不吝賜教我剛剛在測(cè)試STM8的UART的時(shí)候,發(fā)現(xiàn)我所使用的STM8S003好像燒不進(jìn)程序了,就是進(jìn)入debug界面的時(shí)候的程序更新了,然后也跳出bus
    發(fā)表于 05-11 08:18

    求助,關(guān)于STM8供電的疑問(wèn)求解

    ,led是不是就不能達(dá)到5V的最大亮度? 2、led燈和STM8都用5V穩(wěn)壓芯片輸出的電壓供電。這種情況對(duì)STM8有沒(méi)有影響? 另外,如果我要使用STM8的ADC的話,需不需要再加一顆參考電壓芯片,
    發(fā)表于 04-29 06:42

    請(qǐng)問(wèn)學(xué)習(xí)stm是學(xué)庫(kù)函數(shù)好還是寄存器好?

    學(xué)習(xí)stm是學(xué)庫(kù)函數(shù)好還是寄存器好?
    發(fā)表于 04-28 07:18

    stm8怎么代替不了stc

    STM8是意法半導(dǎo)體(STMicroelectronics)公司推出的一款8位單片機(jī),而STC是中國(guó)STC公司推出的一系列8位單片機(jī)產(chǎn)品。盡管兩者都是8位單片機(jī),但由于其設(shè)計(jì)理念、技術(shù)
    的頭像 發(fā)表于 12-26 15:39 ?1861次閱讀

    stm8stm32的區(qū)別和特點(diǎn)

    STM8STM32是STMicroelectronics(意法半導(dǎo)體)推出的兩個(gè)系列的微控制器產(chǎn)品。雖然它們都是由意法半導(dǎo)體生產(chǎn)的,但在架構(gòu)、功能和特點(diǎn)方面有一些顯著的區(qū)別。 架構(gòu): STM8系列
    的頭像 發(fā)表于 12-18 16:36 ?2320次閱讀

    晶科能源獲授“ISSB國(guó)際可持續(xù)披露準(zhǔn)則學(xué)伙伴”證書(shū)

    近日,全球極具創(chuàng)新力的光伏企業(yè)晶科能源在北京國(guó)際可持續(xù)大會(huì)上獲授“ISSB國(guó)際可持續(xù)披露準(zhǔn)則學(xué)伙伴”證書(shū),先行一步學(xué)習(xí)和融入ISSB準(zhǔn)則的框架與要求
    的頭像 發(fā)表于 11-25 10:26 ?529次閱讀

    stm8stm32有什么區(qū)別?

    現(xiàn)在學(xué)接觸到st8,以后會(huì)學(xué)32想知道有哪些區(qū)別
    發(fā)表于 10-24 06:54

    手把手教你學(xué)FPGA仿真

    電子發(fā)燒友網(wǎng)站提供《手把手教你學(xué)FPGA仿真.pdf》資料免費(fèi)下載
    發(fā)表于 10-19 09:17 ?2次下載
    手把手教你<b class='flag-5'>學(xué)</b>FPGA仿真

    想在STM32 MCU上部署機(jī)器學(xué)習(xí)模型?這份入門教程,讓你一學(xué)就會(huì)~

    想在STM32 MCU上部署機(jī)器學(xué)習(xí)模型?這份入門教程,讓你一學(xué)就會(huì)~
    的頭像 發(fā)表于 10-18 17:45 ?3980次閱讀
    想在<b class='flag-5'>STM32</b> MCU上部署機(jī)器學(xué)習(xí)模型?這份入門教程,讓你一<b class='flag-5'>學(xué)</b>就會(huì)~

    STM8 COSMIC中斷

    電子發(fā)燒友網(wǎng)站提供《STM8 COSMIC中斷.pdf》資料免費(fèi)下載
    發(fā)表于 10-07 14:40 ?0次下載
    <b class='flag-5'>STM8</b> COSMIC中斷