操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    TM8S003F3開發板

    GPIO簡介

    GPIO(General-purpose input/output)即通用性輸入輸出端口。單片機使用端口的功能就分為輸入和輸出兩大類。

    • 輸入功能一般是使用單片機讀取某個物理端口上面的數字電壓信號,如果是高電壓則讀取到的數據是1,如果是低電壓則讀取到的數據則是0。數字信號只有這兩種狀態。
    • 輸出功能一般是使用單片機通過寫入端口數據來控制某個物理端口上面的數字電壓信號。如果寫入的數據是1則端口就會輸出高電壓,如果寫入的數據是0則端口就會輸出低電壓。

    高低電平標準

    那么數字信號的高電壓和低電壓是以什么為標準呢。通常這里的電平信號都是遵循TTL電平標準,和芯片的供電電壓有關系。高電壓一般都是芯片的供電電壓VCC,低電壓都是0V。中間有一個容錯的過渡區。STM8S的供電電壓一般都是3.3V或者5V都可以的。

    寄存器

    在操作IO的時候,不管是讀取還是寫入操作,都是通過寫或者讀寄存器來實現的。這里的寄存器是什么?大概可以理解為一些暫存數據的容器,但是它可以遠程控制我們的物理接口。

    • 我們把數據寫到寄存器里面,數據就會通過外部物理端口把數據顯示出來。
    • 我們讀取寄存器里面的數據時,讀取出來的數據就是外部物理端口上的數據。

    當然,讀取和寫入的不是一個寄存器。每個寄存器都有自己的地址,都有自己的名字。

    STM8S的GPIO分配

    STM8S的GPIO分為GPIOA~GPIOE五個組。每個組分別包含(GPIO_PIN_0~GPIO_PIN_7)八個端口。最高會有40個通用IO口。但是每個型號有哪些IO需要根據手冊確認。

    每個端口都可以設置單獨的工作模式和單獨控制。也可以同時操作一個組的8個IO口。根據需要自己選擇即可。

    GPIO細分工作模式

    51單片機的GPIO一般都是準雙向口的。可以進行輸入讀取,也可以進行輸出控制,不用進行太復雜的設置。但是STM8S的GPIO功能比較多,這就意味著控制的時候所做的工作會相會多一些,功能細分的比較明確。下面對一些常用模式進行一些介紹。

    上拉輸入

    引腳內部通過一個電阻連接至VCC。當IO懸空或者外設處于高電平時,讀取的數據都是1,

    只有外設處于低電平的時候,才會讀取到0。

    浮空輸入

    此時的引腳是處于懸空狀態。讀取到的數據取決于與外設的電平狀態。懸空時讀取到的數據時隨機的。

    采集模擬電壓功能的時候需要用到這個模式。

    推挽輸出

    推挽輸出模式是通過內部的開關管對端口提供一個強輸出。電流比51的準雙向口要大很多,一般要接一個限流電阻。不然很容易把負載燒壞。

    GPIO輸出模式的附加功能-操作速率

    當IO口處于輸出模式的時候,STM8S端口可以設置一個高速率或者低速率輸出,兩者略有不同

    • 高速率模式IO的翻轉速度較快。但是功耗會相對高一些。一般輸出高速的PWM時采用這個模式。
    • 低速率模式IO的翻轉速度會慢一些。功耗會低一些。對低頻率的電平控制采用這個模式。

    我一般做東西都是直接供電,沒考慮功耗什么的,一直選用高速率模式。

    GPIO輸入模式的附加功能-中斷開關

    當IO處于輸入模式的時候,我們可以選擇有無中斷功能打開。打開了以后,再進行一些終端寄存器的配置,就會在相應的條件下跳轉到中斷程序中。有些場合使用中斷功能很方便,不用一直判斷端口電平,本節不重點介紹,只知道有這個功能即可。


    GPIO初始化操作步驟

    使用STM8S單片機IO輸出功能時,可參考以下步驟初始化:

    1. 設置IO的工作模式為推挽輸出模式
    2. 設置IO的工作速率為高速或者低速
    3. 設置IO的初始化電平為高還是低

    使用STM8S單片機IO輸入功能時,可參考一下步驟初始化:

    1. 設置IO的工作模式為輸入模式
    2. 設置需要上拉電阻還是懸空
    3. 設置是否需要使能中斷功能

    設置完成以后就可以對輸出寄存器寫入數據控制外部電平。或者對輸入寄存器讀取了。

    1、寫在前面

    想要明白這個問題,其實就需要明白STM8和STM32之間有些什么差異,包括MCU基本信息、開發難度、以及應用場景等。

    站在客觀的角度來說,STM8比STM32學起來更容易,C語言功底還不錯的朋友,直接上STM32也不是問題。

    從大的方向來說,當你對一種MCU掌握的比較透徹,再學其他型號、其他廠商的MCU,相對來說,上手都要容易的多。

    針對本文問題,我下面講述一下相關知識。


    2、STM8和STM32內核差異

    STM8 CPU 是一種專有架構,它保持了以前的 ST7 內核的傳統,同時在 8 位 CPU 效率和代碼密度方面實現了突破。


    STM32 圍繞行業標準 ARM? Cortex?-M 32 位內核構建,并受益于與 ARM 處理器有關的開發工具和軟件解決方案的完整生態產業環境。

    盡管它們被認為是兩種完全不同的處理器,但它們在架構方面實際有許多相似之處。


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

    兩種內核均基于哈佛架構,它們采用 3 級流水線執行,可將執行時間降至最低,對于 STM8S,時鐘速度高達 24 MHz,對于 STM32F1系列,時鐘速度高達 72 MHz。

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


    3、片上外設差異

    ST的8位和 32位 MCU 產品線之間的片上外設具有“一致性”,大多數基本 MCU 外設均定義和構建為可從一個產品系列移植到另一個產品系列。


    這通過將 8 位外設簡單但有效地修改為 32 位字來實現。這樣做的好處是可節約成本和功耗,并且資源易于了解。

    如果需要更高性能,可在系統層面通過更寬的總線和 DMA 控制器對資源加以補充。在了解了外設的工作原理后,可以將外設應用到 STM8S 和 STM32 系列,從而加速兩種器件之間的轉換。


    ARM 處理器和外設符合 AMBA 總線規范,采用 32 位數據總線,而 STM8S 器件使用更為簡單但有效的 8 位總線標準。從功能角度看,它們僅在以下方面存在差異:

    寄存器大小:8 位與 16 或 32 位

    直接取決于 CPU 運行速度的最大時鐘頻率

    DMA,可通過簡單數據管理減輕 CPU 的負荷并提高最大數據吞吐量

    一些產品特定功能,如 I/O 端口管理

    對比STM8S 和 STM32F1 的 SPI 框圖:

    SPI寄存器:

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


    4、系統外設

    當今的 MCU 是復雜的 SoC(片上系統),其中不僅包含許多外設,還包含一些高級系統特性,旨在縮減物料清單或增強系統的安全性和穩定性。


    1.復位

    STM8S 和 STM32 基本具有相同的復位電路,僅有細微的差異:

    NRST 引腳既是輸入也是具有內置上拉電阻的開漏輸出。為實現 EMS(電磁敏感度)魯棒性,插入了一個濾波器以避免毛刺傳播到數字電路中。雙向復位有三個優點:

    對于多 MCU 系統,雙向復位可確保在啟動或熱復位時所有子處理器均正確同步

    對于其它 IC,在系統層面還可以使用 MCU 內嵌的電壓監控器(上電復位和欠壓復位)

    當生成假內部復位時,在調試過程中會有很大幫助


    2.時鐘

    STM8和STM32時鐘都具有很強大的功能,特別是最近推出的STM32G0具有高精度內部時鐘,可以省去外部晶振,減少硬件及PCB。

    STM8不具備倍頻功能,各方面相對要弱一點。STM32具有倍頻、外設時鐘分頻等強大功能。同時,STM8和32都具有獨立外設時鐘使能功能,以降低功耗。

    看下STM32F1時鐘樹,就大概了解有哪些功能了:



    3.存儲器

    兩種產品線均基于非易失性存儲器并具有一個選項字節加載器。此機制取代了用于 MCU 上電配置的傳統熔絲位:用戶可以在編程時選擇多種選項,這些選項會隨程序二進制映像一起寫入。

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

    暫停、停止或待機模式下的復位:可在 MCU 意外進入低功耗模式時避免發生死鎖情況,適用于不能處理此類配置的應用

    硬件/軟件看門狗,可以在復位之后立即通過硬件啟動看門狗

    存儲器讀保護,用于防止對程序內容的竊取

    存儲器寫保護,用于保護存儲器中包含關鍵代碼的部分。通常,這適用于自舉代碼或IAP(應用內編程)驅動程序

    這些選項可自動使能安全性和可靠性特性,這樣即使在 CPU 獲取第一個指令之前出現干擾或攻擊,應用也可以恢復。

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

    當然,還有更多系統特性相關的內容,比如安全性、低功耗方面。這些設計都具有高度一致性。


    5軟件

    STM8和STM32除了上面描述的一些內容具有高度一致性之外,其實,對應我們軟件開發工程師來說,軟件才是最為關心的一點。

    在STM8和STM32產品設計之初,工程師早就考慮過這個問題。因為二者系統、內核及外設都具有一致性,所以軟件庫也是設計具有一致性。


    1.寄存器、庫開發

    這個我就不說了,從51過來的都知道,對于寄存器比較少的MCU來說,不是問題。對于STM8來說,其實我覺得還好,使用寄存器開發,就是需要更多時間了解寄存器。

    我其實不是很建議大家使用寄存器開發,現在STM8有標準外設庫,庫的API函數接口也容易理解,直接拿來省事,也能方便理解寄存器。

    那么對于STM32這種有大量寄存器的MCU,我同樣也是不建議大家直接使用寄存器開發,部分功能可以針對庫優化成寄存器。


    2.STM8、32CubeMX工具

    STM8CubeMX和STM32CubeMX這兩個工具我不止一次在公眾號提到,ST官方的目前的趨勢就是希望用戶使用這個工具來開發。

    而且,大家已經發現,STM32有些新出來的MCU是沒有標準外設庫了。所以,這兩個工具建議大家也要學習。

    STM8CubeMX目前更新至V1.5.0,只能提供配置,方便了解MCU使用資源情況,還不具備自動生成代碼功能,不過我覺得后面應該具有這個功能。

    所以:如果基礎不怎么好,建議先STM8,等學到一定基礎可以再學STM32。如果自認基礎還可以,C語言也行,那么直接上STM32不成問題。

    以上內容來源于原創作者:strongerHuang

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有