熱門關(guān)鍵字:  聽力密碼  聽力密碼  新概念美語  單詞密碼  巧用聽寫練聽力

瘋狂STM32實戰(zhàn)講學(xué)錄

中國水利水電出版社
    【作 者】歐陽駿 李英芬 王小強 【I S B N 】978-7-5170-1398-3 【責(zé)任編輯】張玉玲 【適用讀者群】本專通用 【出版時間】2014-03-03 【開 本】16開 【裝幀信息】平裝(光膜) 【版 次】第1版第1次印刷 【頁 數(shù)】244 【千字?jǐn)?shù)】350 【印 張】15.25 【定 價】38 【叢 書】 【備注信息】
圖書詳情

    本書面向立志于進行STM32處理器開發(fā)的初學(xué)者以及從單片機向STM32處理器轉(zhuǎn)型的工程師,依照理論與實踐相結(jié)合的思想,介紹了STM32開發(fā)過程中的基礎(chǔ)理論,并給出了具體的實例。

    本書針對STM32處理器裸機開發(fā)過程中的重點、難點問題,特別是庫函數(shù)的使用方法,既有基礎(chǔ)知識的講述,又有相關(guān)配套實驗,使讀者能容易、快速、全面地掌握STM32處理器開發(fā)。

    本書循序漸進、內(nèi)容完整、實用性強,以教材方式組織內(nèi)容,可作為高等院校電子、通信、自動控制等專業(yè)的學(xué)習(xí)用書,也可供廣大嵌入式工程師作為參考。

    書中所用源代碼下載地址:http://www.smartmaker.cn/bbs/forum.php。

    眾所周知,ARM Cortex-M是基于ARM7v架構(gòu)的ARM內(nèi)核,因此,ST(ST Microelectronics)公司的STM32系列處理器是基于ARM Cortex-M內(nèi)核32位RISC系列處理器,一般應(yīng)用在家電、工業(yè)控制等領(lǐng)域。

    由于ST公司提供的固件庫較大,初學(xué)者在入門階段會遇到各種問題,然而,市面上很多書籍開篇大論各種編程實例,針對各種接口、各種模塊,如無線通信模塊、GPS模塊,等等,這在很大程度上提高了STM32處理器入門的門檻。

    基于上述原因,本書本著“簡單就是美”的原則,取其精華,去其糟粕,在繁雜的STM32處理器固件庫和眾多的開發(fā)實例中,忽略那些令人眼花繚亂的東西,刪掉那些影響開發(fā)者入門的東西,從STM32處理器時鐘樹講起,正所謂“沿著時鐘樹,結(jié)合固件庫,開啟入門之路”,這也正是筆者寫作本書的出發(fā)點,在本書的各個章節(jié)中,“沿著時鐘樹”的學(xué)習(xí)思路將會得到淋漓盡致的體現(xiàn),希望在這眾多的開發(fā)書籍中,本書能給初學(xué)者照亮一條前進的道路。

    筆者深信“一本好書表達的不僅僅是知識,更是一種知識探索的方法”。作為一名初學(xué)者,學(xué)習(xí)STM32處理器時,很難掌握STM32固件庫的來龍去脈,以及固件庫的使用方法。但是,請讀者明白,固件庫是為了方便用戶進行程序設(shè)計而開發(fā)的,一旦掌握了固件庫的使用方法,對應(yīng)用程序的開發(fā)將起到巨大的推動作用。從另一方面講,任何數(shù)字系統(tǒng)都是按照特定的時鐘來運行的,所以,只需要弄清楚時鐘系統(tǒng),然后沿著時鐘系統(tǒng)的路線學(xué)習(xí),很快就可以入門。因此,本書的主線是:從STM32處理器時鐘系統(tǒng)入手,沿著時鐘學(xué)習(xí)各個功能模塊的工作原理及使用方法,即本書強調(diào)的“沿著時鐘樹,結(jié)合固件庫”的思路。

    本書的特點

     獨辟蹊徑。本書以按照“沿著時鐘樹,結(jié)合固件庫”的寫作思路,使讀者盡快入門。

     模塊化設(shè)計與系統(tǒng)設(shè)計相結(jié)合。本書秉承了STM32處理器固件庫的模塊化設(shè)計風(fēng)格,力圖使程序模塊化,盡最大限度實現(xiàn)代碼的復(fù)用。

    筆者努力使本書成為一本STM32處理器開發(fā)的紀(jì)實手冊,盡力展現(xiàn)出開發(fā)過程中的問題及其解決方法,為給讀者提供參考,使讀者少走彎路,因此,筆者選擇用通俗的語言來敘述,而并不想用艱深晦澀難懂的語言來迷惑讀者。

    本書內(nèi)容概述

    第1章講述了STM32Fxx系列處理器的發(fā)展歷史以及相關(guān)的背景知識。

    第2章通過一個流水燈實例對STM32F103VET6處理器開發(fā)進行了具體講解,給讀者展現(xiàn)出STM32處理器開發(fā)的基本方法,以及固件庫的概念及使用方法。

    第3章對ARM C語言程序開發(fā)過程中的基礎(chǔ)知識進行了講解,重點分析了位運算的定義和具體應(yīng)用實例。

    第4章對GPIO編程進行了具體講解。

    第5章主要講解了STM32處理器中斷系統(tǒng),首先講解了中斷的基本概念,然后重點分析了中斷響應(yīng)的過程。

    第6章重點對系統(tǒng)時鐘系統(tǒng)和定時器進行了講解,以理論為指導(dǎo),配合了恰當(dāng)?shù)膶嶒灒蜃x者展示了系統(tǒng)時鐘初始化以及定時器的具體應(yīng)用。

    第7章對STM32F103VET6處理器的UART進行了講解,在本章并沒有涉及較多的寄存器操作,對常用的幾個固件庫函數(shù)進行了講解。此外本章還擴展了可變參數(shù)函數(shù)、UART輸出重定向功能進行了講解并給出了具體的操作方法。

    第8章對STM32F103VET6處理器的DMA進行了講解,對DMA存儲器到存儲器的數(shù)據(jù)傳輸、存儲器到外設(shè)的數(shù)據(jù)傳輸以及外設(shè)到存儲器的數(shù)據(jù)傳輸功能進行了講解,并給出了具體的操作方法。

    第9章主要討論了啟動代碼的組成部分及各個部分的組成原理,同時給出了簡化版的啟動代碼。

    第10章主要討論了STM32F103VET6處理器ADC的使用。

    第11章主要討論了SST25VF016B存儲器的使用方法,重點講解了STM32F103VET6處理器硬件SPI的使用方法。

    第12章主要討論了STM32F103VET6處理器DAC的使用。

    第13章討論了STM32F103VET6處理器內(nèi)部Flash存儲器的使用方法。

    第14章主要討論了STM32F103VET6處理器LCD顯示器的初始化使用方法以及使用LCD顯示圖片和漢字的原理。

    此外,本書只是對STM32處理器裸機開發(fā)進行了講解,熟悉裸機開發(fā)是進行操作系統(tǒng)開發(fā)的基礎(chǔ),秉承本書的風(fēng)格,一切從簡單開始,對功能進行逐步擴展,最終實現(xiàn)較為復(fù)雜的系統(tǒng),在后續(xù)編寫計劃中,筆者將對嵌入式實時操作系統(tǒng)μC/OS-II以及基于開源TCP/IP協(xié)議棧LwIP的網(wǎng)絡(luò)程序設(shè)計進行講解,敬請期待。

    適用對象

     高等院校電子、通信、自動控制等專業(yè)學(xué)生;

     從單片機開發(fā)向ARM嵌入式開發(fā)轉(zhuǎn)型的工程師;

     從事ARM嵌入式開發(fā)的相關(guān)技術(shù)人員。

    編者與致謝

    本書由歐陽駿、李英芬、王小強等編著,粟思科審。參與本書編寫的還有:王治國、鐘曉林、王娟、胡靜、楊龍、張成林、方明、王波、陳小軍、雷曉、李軍華、陳曉云、方鵬、龍帆、劉亞航、凌云鵬、陳龍、曹淑明、徐偉、楊陽、張宇、劉挺、單琳、吳川、李鵬、李巖、朱榕、陳思濤和孫浩,在此一并表示感謝。

    配套服務(wù)

    我們?yōu)镾TM32讀者和用戶盡心服務(wù),圍繞STM32技術(shù)、產(chǎn)品和項目市場,探討STM32應(yīng)用與發(fā)展,發(fā)掘熱點與重點,開展STM32教學(xué)。STM32俱樂部QQ:183090495,電子郵件hwhpc@163.com,歡迎STM32愛好者和用戶聯(lián)系。由于作者水平有限,書中難免有不恰當(dāng)?shù)牡胤剑瑧┱垙V大讀者批評指正。

    第1章 開場白 1
    1.1 STM32處理器是什么 1
    1.2 數(shù)據(jù)長度 2
    1.3 地址空間 3
    1.3.1 大端和小端的故事 3
    1.3.2 STM32Fxx系列處理器存儲
    空間布局 4
    1.4 STM32F103VET6處理器開發(fā)平臺 5
    1.5 本章小結(jié) 7
    1.6 擴展閱讀之CISC處理器和RISC處理器
    的關(guān)系 7
    1.7 擴展閱讀之ARM指令集架構(gòu)及ARM
    處理器的因緣 9
    第2章 神奇的流水燈 11
    2.1 開發(fā)環(huán)境簡介 11
    2.2 流水燈 12
    2.2.1 認(rèn)識固件庫 14
    2.2.2 流水燈程序分析 17
    2.2.3 流水燈測試 19
    2.2.4 流水燈引發(fā)的思考 20
    2.3 本章小結(jié) 21
    2.4 附錄1—流水燈源程序 21
    2.5 附錄2—開發(fā)環(huán)境搭建 22
    第3章 傳遞C語言正能量 26
    3.1 數(shù)據(jù)類型基礎(chǔ) 26
    3.1.1 用typedef和#define定義類型 29
    3.1.2 用signed和unsigned修飾數(shù)據(jù)類型 29
    3.1.3 volatile和強制類型轉(zhuǎn)換 30
    3.2 位運算符和位運算 31
    3.2.1 按位與運算符(&) 31
    3.2.2 按位或運算符(|) 32
    3.2.3 按位取反運算符(~) 32
    3.2.4 左移和右移運算符(<<)、(>>) 32
    3.3 控制結(jié)構(gòu) 33
    3.3.1 選擇結(jié)構(gòu) 33
    3.3.2 循環(huán)結(jié)構(gòu) 33
    3.4 防止文件重復(fù)包含技巧 33
    3.5 本章小結(jié) 33
    3.6 擴展閱讀之高速緩存基礎(chǔ)知識 34
    3.7 附錄—流水燈實驗完整源代碼 36
    第4章 GPIO入門之道 38
    4.1 GPIO概述 38
    4.1.1 GPIO引腳介紹 40
    4.1.2 GPIO相關(guān)寄存器 40
    4.1.3 舊事重提——再議固件庫 41
    4.1.4 IO端口復(fù)用 43
    4.2 LED實驗 43
    4.2.1 硬件電路分析 43
    4.2.2 程序分析 44
    4.2.3 程序測試 45
    4.3 本章小結(jié) 45
    4.4 擴展閱讀之APCS調(diào)用規(guī)則簡述 45
    4.5 擴展閱讀之STM32系列處理器固件庫
    命名規(guī)則 46
    第5章 中斷和異常的故事 47
    5.1 STM32F103VET6中斷系統(tǒng)概述 47
    5.1.1 中斷和異常的類型 48
    5.1.2 嵌套中斷向量控制器 50
    5.1.3 中斷響應(yīng)函數(shù) 52
    5.1.4 中斷向量表 52
    5.2 外部中斷初探 53
    5.2.1 硬件電路分析 54
    5.2.2 程序分析 54
    5.2.3 程序測試 57
    5.3 SysTick心跳實驗 58
    5.3.1 程序設(shè)計及代碼詳解 59
    5.3.2 實例測試 60
    5.4 本章小結(jié) 61
    5.5 擴展閱讀之中斷和事件 61
    第6章 探究時鐘滴答的奧妙 63
    6.1 STM32F103VET6時鐘系統(tǒng)概述 63
    6.1.1 系統(tǒng)時鐘樹 64
    6.1.2 SystemInit()庫函數(shù)解析 65
    6.2 基本定時器的來龍去脈 67
    6.2.1 基本定時器基礎(chǔ)實驗 67
    6.2.2 基本定時器實驗源程序 69
    6.2.3 基本定時器基礎(chǔ)實驗測試 71
    6.3 通用定時器原理與應(yīng)用 72
    6.3.1 比較輸出模式實驗 72
    6.3.2 比較輸出模式源程序 73
    6.3.3 比較輸出模式實驗測試 75
    6.3.4 PWM輸出模式實驗 76
    6.3.5 PWM輸出模式源程序 77
    6.3.6 PWM輸出模式實驗測試 79
    6.4 本章小結(jié) 80
    第7章 體驗UART 81
    7.1 UART概述 81
    7.2 UART基本特性 82
    7.3 UART固件庫 83
    7.4 UART基礎(chǔ)實驗 84
    7.4.1 硬件電路分析 84
    7.4.2 程序設(shè)計及代碼詳解 85
    7.4.3 實例測試 87
    7.4.4 UART基礎(chǔ)實驗分析 87
    7.5 UART高級實驗——可變參數(shù)函數(shù)在
    UART中的應(yīng)用 89
    7.5.1 程序設(shè)計及代碼詳解 90
    7.5.2 實例測試 93
    7.6 UART高級實驗——UART重定向
    的應(yīng)用 93
    7.6.1 程序設(shè)計及代碼詳解 95
    7.6.2 實例測試 96
    7.7 UART擴展實驗——UART控制LED 97
    7.7.1 程序設(shè)計及代碼詳解 97
    7.7.2 實例測試 100
    7.8 UART擴展實驗——獲取系統(tǒng)時鐘頻率 101
    7.9 本章小結(jié) 103
    7.10 附錄—UART擴展實驗——獲取系統(tǒng)
    時鐘頻率源代碼 103
    第8章 DMA數(shù)據(jù)大挪移 106
    8.1 DMA基本特性 106
    8.2 DMA固件庫 107
    8.3 DMA存儲器到存儲器傳輸實驗 107
    8.3.1 程序設(shè)計及代碼詳解 108
    8.3.2 實例測試 111
    8.3.3 存儲器到存儲器實驗改進
    ——DMA反向數(shù)據(jù)傳輸 111
    8.3.4 關(guān)于DMA傳輸通道的討論 113
    8.4 DMA存儲器到外設(shè)傳輸實驗 115
    8.4.1 程序設(shè)計及代碼詳解 115
    8.4.2 實例測試 117
    8.5 DMA外設(shè)到存儲器傳輸實驗 118
    8.5.1 程序設(shè)計及代碼詳解 118
    8.5.2 實例測試 121
    8.6 本章小結(jié) 122
    第9章 挑戰(zhàn)啟動代碼 123
    9.1 匯編語言那些事兒 123
    9.1.1 ARM指令介紹 124
    9.1.2 偽操作和偽指令介紹 125
    9.2 匯編語言程序的基本結(jié)構(gòu) 127
    9.3 啟動代碼分析 131
    9.4 main()函數(shù)的前生今世 140
    9.5 神奇的SystemInit()函數(shù) 142
    9.6 麻雀雖小五臟俱全的啟動代碼 142
    9.7 本章小結(jié) 144
    第10章 對話ADC 145
    10.1 ADC原理 145
    10.2 ADC基本特性 146
    10.3 ADC固件庫 146
    10.4 ADC基礎(chǔ)實驗 148
    10.4.1 程序設(shè)計及代碼詳解 148
    10.4.2 實例測試 153
    10.5 ADC擴展實驗——獲取ADC
    時鐘頻率 153
    10.6 ADC擴展實驗——獲取溫度 155
    10.7 本章小結(jié) 157
    第11章 串行Flash存儲器大串燒 158
    11.1 Flash是什么 158
    11.2 使用固件庫和存儲器“對話” 158
    11.3 存儲器的“身份證” 161
    11.3.1 讀取存儲器“身份證”代碼詳解 161
    11.3.2 讀取存儲器“身份證”測試 166
    11.3.3 要致富先修路 167
    11.3.4 條條大道通羅馬 168
    11.3.5 SPI修煉秘籍 170
    11.4 向Flash存儲器驅(qū)動致敬 170
    11.4.1 驅(qū)動程序的境界 171
    11.4.2 驅(qū)動前傳 172
    11.4.3 驅(qū)動大課堂 174
    11.5 Flash存儲器親密接觸 181
    11.5.1 扇區(qū)擦除 181
    11.5.2 體驗讀寫的快樂 182
    11.6 本章小結(jié) 183
    11.7 附錄—嵌入式文件系統(tǒng)移植簡介 183
    11.8 附錄—SST25VF016B驅(qū)動程序匯總 185
    第12章 問道DAC 191
    12.1 DAC基本特性 191
    12.2 DAC固件庫 193
    12.3 DAC基礎(chǔ)實驗 194
    12.3.1 程序設(shè)計及代碼詳解 194
    12.3.2 實例測試 197
    12.4 本章小結(jié) 197
    第13章 論劍內(nèi)部Flash 198
    13.1 存儲器容量知多少 198
    13.2 獲取存儲器容量實驗 199
    13.3 奇妙的電子簽名 201
    13.4 論劍內(nèi)部Flash存儲器 203
    13.4.1 從系統(tǒng)啟動講起 204
    13.4.2 內(nèi)部Flash存儲器 205
    13.4.3 內(nèi)部Flash存儲器訪問 206
    13.5 本章小結(jié) 207
    第14章 玩轉(zhuǎn)TFT LCD 208
    14.1 LCD顯示器和LCD控制器工作原理 208
    14.1.1 LCD顯示器概述 209
    14.1.2 LCD接口信號 209
    14.1.3 LCD顯示原理 210
    14.1.4 靜態(tài)存儲器控制器(FSMC) 212
    14.1.5 FSMC初始化 214
    14.2 LCD基礎(chǔ)實驗 215
    14.2.1 程序設(shè)計及代碼詳解 216
    14.2.2 實例測試 221
    14.3 LCD基礎(chǔ)實驗之圖片顯示 221
    14.3.1 如何將圖片轉(zhuǎn)換為C語言數(shù)組 221
    14.3.2 程序設(shè)計及代碼詳解 223
    14.3.3 實例測試 223
    14.4 LCD高級實驗之漢字顯示 224
    14.4.1 兩種常見的漢字編碼 224
    14.4.2 LCD漢字顯示原理 225
    14.4.3 程序設(shè)計及代碼詳解 226
    14.4.4 實例測試 227
    14.4.5 LCD顯示高級技巧——可變參
    函數(shù)Lcd_Printf的實現(xiàn) 227
    14.4.6 可變參函數(shù)Lcd_Printf測試 230
    14.4.7 漢字區(qū)位碼的思考 230
    14.4.8 實例測試 232
    14.5 本章小結(jié) 233
    參考文獻 234





最新評論共有 0 位網(wǎng)友發(fā)表了評論
發(fā)表評論
評論內(nèi)容:不能超過250字,需審核,請自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī)。
用戶名: 密碼:
匿名?
注冊
清涧县| 女性| 巴中市| 仁寿县| 安乡县| 凌云县| 焦作市| 婺源县| 哈密市| 静海县| 长汀县| 疏附县| 微山县| 苍溪县| 包头市| 天等县| 濮阳县| 丹江口市| 澎湖县| 邓州市| 赫章县| 柳林县| 汝州市| 忻州市| 济阳县| 竹山县| 平果县| 伊春市| 福鼎市| 方山县| 武定县| 二连浩特市| 剑阁县| 铜山县| 阳春市| 临颍县| 肃北| 桃园市| 新安县| 深州市| 昌黎县|