RM新时代网站-首页

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

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

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

STM8和STM32之間有些什么差異?STM8和STM32先學(xué)誰(shuí)?

5RJg_mcuworld ? 來(lái)源:lq ? 2019-01-17 17:34 ? 次閱讀

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

1寫在前面

想要明白這個(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)制映像一起寫入。

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

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

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

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

存儲(chǔ)器寫保護(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)重新燒寫內(nèi)部 Flash。隨后可以將任何具有串行通訊接口的 PC 用作編程工具,來(lái)燒寫或更新 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)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16316

    瀏覽量

    177791
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10851

    瀏覽量

    211535
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10893

    瀏覽量

    355681

原文標(biāo)題:STM8和STM32先學(xué)誰(shuí),進(jìn)來(lái)看答案吧!

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM8STM32內(nèi)核差異是什么

    STM32之間有些什么差異,包括MCU基本信息、開(kāi)發(fā)難度、以及應(yīng)用場(chǎng)景等。站在客觀的角度來(lái)說(shuō),STM8
    發(fā)表于 02-23 06:03

    STM8STM32的內(nèi)核有什么差異

    STM8STM32的內(nèi)核有什么差異呢?STM8STM32的片上外設(shè)有什么差異呢?
    發(fā)表于 02-23 07:39

    STlink V2在電路調(diào)試/編程STM8STM32_英文版

    ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32,STM官方資料,值得參考!
    發(fā)表于 09-07 18:16 ?0次下載

    STM32?和STM8?Flash載入演示_英版

    The purpose of this document is to describe the STMicroelectronics STM32? and STM8? Flash loader
    發(fā)表于 11-16 16:16 ?0次下載

    stm8/stm32 GD脫機(jī)編程器介紹pdf

    stm8/stm32 GD脫機(jī)編程器介紹pdf
    發(fā)表于 02-01 16:29 ?10次下載

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

    學(xué)STM8,還是學(xué)STM32?
    的頭像 發(fā)表于 03-04 11:05 ?4175次閱讀

    STM32/STM8硬件平臺(tái)基本配置

    STM32/STM8硬件平臺(tái)基本配置方法說(shuō)明。
    發(fā)表于 04-28 15:14 ?14次下載

    STM32STM8選型指南.pdf

    STM32STM8選型指南.pdf
    發(fā)表于 11-05 16:33 ?21次下載

    STM8STM32開(kāi)發(fā)總結(jié)

    STM8STM32開(kāi)發(fā)總結(jié)
    發(fā)表于 11-23 18:07 ?23次下載
    <b class='flag-5'>STM8</b>和<b class='flag-5'>STM32</b>開(kāi)發(fā)總結(jié)

    micropython支持stm32型號(hào)_學(xué)STM8,還是學(xué)STM32?

    STM32之間有些什么差異,包括MCU基本信息、開(kāi)發(fā)難度、以及應(yīng)用場(chǎng)景等。站在客觀的角度來(lái)說(shuō),STM8
    發(fā)表于 12-29 19:26 ?0次下載
    micropython支持<b class='flag-5'>stm32</b>型號(hào)_<b class='flag-5'>先</b><b class='flag-5'>學(xué)</b><b class='flag-5'>STM8</b>,還是<b class='flag-5'>學(xué)</b><b class='flag-5'>STM32</b>?

    micropython支持stm32型號(hào)_學(xué)STM8,還是學(xué)STM32?

    STM8STM32之間有些什么差異,包括MCU基本信息、開(kāi)發(fā)難度、以及應(yīng)用場(chǎng)景等。站在客觀的角度來(lái)說(shuō),
    發(fā)表于 12-31 19:28 ?1次下載
    micropython支持<b class='flag-5'>stm32</b>型號(hào)_<b class='flag-5'>先</b><b class='flag-5'>學(xué)</b><b class='flag-5'>STM8</b>,還是<b class='flag-5'>學(xué)</b><b class='flag-5'>STM32</b>?

    AN1709 STM8、STM32和傳統(tǒng)MCU的EMC設(shè)計(jì)指南

    AN1709 STM8STM32和傳統(tǒng)MCU的EMC設(shè)計(jì)指南
    發(fā)表于 11-21 17:07 ?1次下載
    AN1709 <b class='flag-5'>STM8</b>、<b class='flag-5'>STM32</b>和傳統(tǒng)MCU的EMC設(shè)計(jì)指南

    stm單片機(jī)型號(hào)的意義 stm8stm32的燒寫程序的區(qū)別 stm8讀取程序

    STM或STM32STM8,代表單片機(jī)的品牌和系列。STM32系列是基于ARM Cortex-M內(nèi)核的單片機(jī)系列,而STM8系列則是基于ST8
    的頭像 發(fā)表于 04-08 14:43 ?8343次閱讀

    STM8STM32產(chǎn)品選型手冊(cè)

    STM8STM32產(chǎn)品選型手冊(cè)
    發(fā)表于 07-06 10:44 ?28次下載

    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 ?2912次閱讀
    RM新时代网站-首页