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

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

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

教你如何玩轉(zhuǎn)STM8單片機!

GReq_mcu168 ? 來源:未知 ? 作者:胡薇 ? 2018-08-10 15:46 ? 次閱讀

最初從單片機學習整個計算機系統(tǒng)是個非常正常的階梯學習方法。因為直到今天,計算機系統(tǒng)的那些事,也沒逃離這個最基礎(chǔ)的架構(gòu)??上耶斈曛苯犹^了這個過程,直接從intel 486學起的,那時每天帶著無數(shù)的疑問在艱難的前行。

單片機不一定要學習51,其實隨便選一家都是一樣的。從實際出發(fā)要選,便宜的,外圍器件少的,里面功能的,所以為大家挑選了STM8L。

STM8L是個8位單片機,我在論壇中的確看到一些小兄弟在問8位是怎么回事?我至少欣慰這位兄弟確實在思考。通常我說的8位是指CPU計算時,具體點說,不如說加法,是指兩個8位二進制數(shù)相加的能力。同理,32位,就是32位二進制數(shù)相加。

另外,也是最難的部分,這8位單片機的尋范圍可不一定是8位的,這點要注意。尋址范圍,聽不懂?不如說是地址范圍。想象一下,8根地址線,每根線上用電壓高或者低表示1和0,那么這8根線,一共能表示多少個數(shù)字,你可以一個個數(shù),當然最好是計算,2的8次方種組合。那也就算256個數(shù)字,每個數(shù)字表示一個地址訪問一個字節(jié)的數(shù)據(jù),也就只能訪問256個字節(jié)。這個空間太小了。所以意法半導體是不會如此設(shè)計的,那就增加地址線,增到16根地址線,2的16次方,等于65536個地址。我記得有門課程《計算機原理》,本是本很實用的書,可惜老師講的太爛,毫無吸引力。

65536是64KB,對于STM8L151K4T6,擁有16KB flash,以及2KB ram是足夠?qū)ぶ妨?。單片機的整個地址空間通常很簡單,就是一個連續(xù)的線性空間0x0000~0xFFFF。只是其中分散著一塊塊的內(nèi)存,有的是flash,有的是ram,有的是register set,有的是ROM。僅此而已,別以為有多么復雜。

Flash和Ram是存儲代碼和數(shù)據(jù),包括堆棧。

Registers就是軟件控制外設(shè)的唯一的接口。寫驅(qū)動程序就是和這些寄存器打交道。每家芯片的寄存器的設(shè)計都不同,你需要閱讀廠商的大量資料,一般是英文的。

慶幸的是ST發(fā)布了標準外設(shè)庫函數(shù),使你不再需要關(guān)心寄存器細節(jié)。但如果你是單片機初學者,我建議閱讀標準外設(shè)庫代碼,以及閱讀芯片手冊。當你閱讀到一定量以后,你會找到市面上所有芯片的共性,以及明白他們設(shè)計的優(yōu)缺點。做到心中有數(shù),甚至不看手冊,就能八九不離十的猜到任意芯片的寄存器設(shè)計,這就到了,驅(qū)動程序最高境界。

現(xiàn)在學習STM8,由于ST已經(jīng)提供標準驅(qū)動庫函數(shù),對C語言能力要求已經(jīng)很弱了,只要上過大學C語言課程,都可以進行編程。

但是我建議大家把C語言學深點。它的核心就是指針,玩轉(zhuǎn)指針,就玩懂了C語言。它的其他功能和其他語言沒有任何差別。只是邏輯控制而已。能把C的指針真正弄懂,你還不得不學習一下機器語言,萬變不離其宗。見多識廣,千萬不要懷疑自己大腦的記憶能力,也不要認為多學會學混,我的經(jīng)驗是,學得越多,只會讓你你看得更明白。

STM8系統(tǒng)的機器指令的長度是8位的。固定長度,你可以大致看看每個Bit是什么意思。這都是工程師精確設(shè)計的,也是人設(shè)計的。別人能做到的,你為什么不行?多問問自己。

機器指令的介紹,一定會花大篇幅介紹尋址。你可以想象,機器世界里,你的資源,其實只有內(nèi)存和寄存器。內(nèi)存是靠地址的,才能知道訪問的是哪一塊,而寄存器就是靠唯一的名字訪問,當然外部設(shè)備的地址,也是靠地址訪問。所以可以推斷,機器指令手冊,必須介紹,如何把寄存器的內(nèi)容搬移到內(nèi)存,或者如何把內(nèi)存特定地址的內(nèi)容搬移到寄存器。更有可能你是期望把直接的一個數(shù)字放入寄存器。等等的各種組合。不是任意一條連線都是被允許的,一般都不會支持直接把一條內(nèi)存,搬移到另一條內(nèi)存。中間需要寄存器暫存一下。等等的規(guī)律,你讀多了自然會懂。

不過上手STM8不需要懂這些,一樣可以玩。它內(nèi)置bootROM,一啟動,當跳進你的main函數(shù)時,該做的初始化已經(jīng)完成,你直接可以開始操作GPIO了,clock如果沒有額外需要,不需要配置,內(nèi)置的16MHz的晶振,默認8分頻,2MHz用來跑core,也就是運行你的程序。STM8L151K4T6最小系統(tǒng)板,我會提供一個最小的工程文件,里面包含一個操作GPIO的代碼,也就是讓開發(fā)板上的 LED燈點亮,并且閃爍?;镜倪壿嬍抢撸徒惶?,中間加延時,這里的延時,用的最簡單的的死循環(huán)delay,代碼邏輯簡單,就是不夠環(huán)保。死循環(huán)是靠電耗換來的,但是這種代碼有時候也是必要的,上MHz的CPU,運行每條指令都是ns級別的,如果你需要的delay也是ns級別的,那么死循環(huán)確實就是最好的選擇。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6030

    文章

    44491

    瀏覽量

    632023
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

    56674

原文標題:怎樣玩轉(zhuǎn)STM8單片機

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM8單片機

    單片機8單片機STM8
    jf_72064266
    發(fā)布于 :2022年10月04日 05:27:41

    stm8單片機例程分享

    在這篇文章中將自己上傳的資源做一個下載鏈接的目錄方便查找下載單片機解析字符串命令示例STM8單片機雙通道PWM互補輸出STM8單片機5通道A
    發(fā)表于 01-27 07:37

    STM8_單片機原理與實踐_劉海成/葉樹江/郭強編著

    STM8 單片機原理與實踐STM8 單片機原理與實踐
    發(fā)表于 01-13 10:12 ?0次下載

    PIC STM8 STC單片機代碼及相關(guān)資料

    PIC STM8 STC單片機代碼及相關(guān)資料,破解文件等
    發(fā)表于 02-07 15:53 ?15次下載

    STM8單片機的電路原理圖詳細資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM8單片機的電路原理圖資料免費下載。
    發(fā)表于 11-14 17:10 ?57次下載
    <b class='flag-5'>STM8</b><b class='flag-5'>單片機</b>的電路原理圖詳細資料免費下載

    STM8單片機如何進行IAR工程的建立

    本文檔的主要內(nèi)容詳細介紹的是STM8單片機如何進行IAR工程的建立。
    發(fā)表于 05-10 18:13 ?8次下載
    <b class='flag-5'>STM8</b><b class='flag-5'>單片機</b>如何進行IAR工程的建立

    STM8單片機的串口UART資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM8單片機的串口UART資料免費下載。
    發(fā)表于 04-24 17:19 ?33次下載
    <b class='flag-5'>STM8</b><b class='flag-5'>單片機</b>的串口UART資料免費下載

    STM8單片機的C語言例程合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM8單片機的C語言例程合集免費下載
    發(fā)表于 04-27 17:26 ?101次下載
    <b class='flag-5'>STM8</b><b class='flag-5'>單片機</b>的C語言例程合集免費下載

    STM8系列單片機程序的下載方式

    STM8系列單片機程序的下載方式
    發(fā)表于 11-26 14:06 ?31次下載
    <b class='flag-5'>STM8</b>系列<b class='flag-5'>單片機</b>程序的下載方式

    手把手教你STM8單片機標準庫移植

    的8051,STM8是ST獨有的8單片機內(nèi)核。2.STM8單片機內(nèi)部的寄存器更多,資源更豐富,功能更強大,價格相比8051更貴一點。3.S
    發(fā)表于 11-26 14:36 ?15次下載
    手把手<b class='flag-5'>教你</b><b class='flag-5'>STM8</b><b class='flag-5'>單片機</b>標準庫移植

    stm8單片機例程下載鏈接

    在這篇文章中將自己上傳的資源做一個下載鏈接的目錄方便查找下載單片機解析字符串命令示例STM8單片機雙通道PWM互補輸出STM8單片機5通道A
    發(fā)表于 12-03 12:06 ?40次下載
    <b class='flag-5'>stm8</b><b class='flag-5'>單片機</b>例程下載鏈接

    如何設(shè)置STM8單片機選項字

    如何設(shè)置STM8單片機選項字
    發(fā)表于 12-03 12:36 ?12次下載
    如何設(shè)置<b class='flag-5'>STM8</b><b class='flag-5'>單片機</b>選項字

    stm單片機型號的意義 stm8和stm32的燒寫程序的區(qū)別 stm8讀取程序

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

    STM8單片機CAN濾波器的設(shè)置

    STM8單片機CAN濾波器的設(shè)置
    的頭像 發(fā)表于 10-17 14:50 ?2241次閱讀
    <b class='flag-5'>STM8</b><b class='flag-5'>單片機</b>CAN濾波器的設(shè)置

    STM8系列單片機入門

    電子發(fā)燒友網(wǎng)站提供《STM8系列單片機入門.pdf》資料免費下載
    發(fā)表于 10-07 16:09 ?2次下載
    <b class='flag-5'>STM8</b>系列<b class='flag-5'>單片機</b>入門