-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
門市星期日公休
9/28 新書到! 9/23 新書到! 9/14 新書到! 9/7 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

STM32F0實戰:基于HAL庫開發

( 簡體 字)
作者:高顯生類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32
譯者:
出版社:機械工業出版社STM32F0實戰:基于HAL庫開發 3dWoo書號: 50309
詢問書籍請說出此書號!

缺書
NT定價: 645
折扣價: 606

出版日:11/1/2018
頁數:740
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111612964
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

意法半導體公司(下文簡稱意法公司)近年來在國內單片機市場上的業績可圈可點,旗下STM32系列單片機憑借其高性能、高性價比成為32位單片機的市場主力,在如今的人才市場上,會不會使用STM8和STM32單片機往往是用人方選擇硬件工程師的條件之一,其重要性和業界的影響力可見一斑。在意法公司的產品線中,STM32F0系列是32位微控制器中的入門級產品。該系列基于ARM公司的Cortex-M0內核,集實時性能、低功耗運算和STM32平臺的先進架構及外設于一身,既保留了對傳統8位和16位市場的壓倒性競爭力,又可以傳承STM32用戶的開發平臺和程序代碼,是入門STM32開發的不二之選。本書將以STM32F0系列微控制器中的旗艦型號STM32F072VBT6微控制器為例,從整體架構、存儲器、時鐘樹、異常處理、DMA和外設模塊等方面做詳細的介紹,特別是對微控制器片內的bxCAN模塊和USB模塊的原理和開發方法進行重點介紹。

學習ARM微控制器的方法其實與學習8位機并無兩樣,只要找準入門的方法就會事半功倍。在接觸STM32F0系列的32位單片機之前,你一定也曾經是8位單片機的“發燒友”,回想當初我們使用8051單片機點亮一個LED時,那種激動的心情至今仍難以忘懷。在此筆者向大家推薦與當初學習8051單片機相同的方法,即從一個簡單的實驗入手,如點亮一個LED,由局部到整體,逐步積累開發經驗,增強信心,循序漸進,由淺入深。要特別注意的是不要在你還沒有學會使用寄存器和函數來操作STM32的時候,就貿然研究操作系統移植、圖形用戶界面(GUI)以及上位機開發等。這不但會讓你對學習STM32望而卻步,還會使你對學習嵌入式開發的信心喪失,這是最可怕的事情。本書不拘泥于概念和原理的探究,而是立足于實踐,從系統板基礎電路起步,一章一個例子、一章一個實驗、一章一個總結、一個模塊一套或多套代碼,從最基本的I/O口學起,逐步拓展到定時器、時鐘、串行口、ADC等,屆時你會發現其實STM32與8位單片機也沒有太大差別。

近期,意法公司專門針對旗下不同系列的微控制器產品推出了一款全新的開發軟件—STM32CubeMX。該軟件允許用戶使用圖形化界面簡單直觀地對目標微控制器的引腳、時鐘等進行初始化設置,并能針對不同的集成開發環境,如EWARM、MDK-ARM、TrueSTUDIO等快速生成開發項目,這無疑是STM32入門用戶最重大的利好消息。本書將利用STM32CubeMX作為項目建立和代碼初始化工具,快速生成STM32F0系列微控制器的程序架構,并在MDK-ARM軟件上對代碼進行進一步的編輯修改,直至完成最終的項目開發。

作為STM32微控制器開發的新手,往往在從寄存器開發入手還是從固件庫開發入手的選擇上糾結不定。業界對開發STM32系列微控制器的方法通常也持有兩種不同的觀點:一種認為寄存器開發能使開發者明晰單片機內部結構,編寫出簡潔的代碼,執行效率高;而另一種則認為固件庫開發能避開對寄存器操作,減輕編程者的壓力,還可以為開發者訪問底層硬件提供一個中間應用編程界面(API),并方便上層軟件的調用。筆者認為,作為開發STM32的硬件工程師,以上兩種開發方法都應該掌握,原因是寄存器開發能加深對芯片內部結構和功能的理解,是微控制器入門的必經之路,而固件庫開發則是一種趨勢,它的編程思想更加先進,對應代碼更規范,更具有可讀性。本書基于STM32CubeMX軟件自帶的HAL庫開發—HAL庫不同于以往的標準外設庫,是意法公司最新推出的替代標準外設庫的產品,書內附HAL庫、函數、結構、常量等的詳細說明及開發實例。

為了配合本書的出版,相應的開發板和視頻教程“STM32奇幻漂流記”也會在近期由“睿芯美微”淘寶網店同步推出,網址為http://shop59521455.taobao.com。由于作者水平有限,加之寫作時間倉促,書中錯誤在所難免,在此懇請讀者和有識之士給予批評斧正,也歡迎大家通過互聯網與筆者分享STM32的開發心得。


本書得以出版,首先要特別感謝機械工業出版社華章公司朱捷等資深編輯,他們對本書的選題、立意和編纂給予了大力支持和悉心指導。其次要感謝的是廣大熱心網友,你們為本書內容、結構、寫法獻言獻策,給予了莫大關心和支持。再次要感謝筆者的家人,在筆者奮筆疾書的日日夜夜照顧飲食起居,讓筆者能更加專注于本書的創作。

尺有所短,寸有所長。每個人的天賦迥異,如果你發現自己對電子產業時常會萌發出一些新奇的想法或創意,請一定將其捕捉住,并且盡早閱讀本書,那時你會發現使用STM32系列微控制器會讓你的想法變為現實,會讓你的創意盡情表達,這也許就是你走上研發之路的起點,你的人生也會因此而更加精彩!再次感謝你選擇本書,祝學業有成,事業順達!

高顯生

于哈爾濱
內容簡介:

作為STM32單片機的入門者,往往在從寄存器開發還是從固件庫開發上糾結不定,本書將從市場上非常暢銷的STM32F0系列微控制器入手,利用意法半導體公司新近推出的一款全新的開發軟件——STM32CubeMX做為項目建立和代碼初始化工具,快速生成F0系列的開發環境,并在MDK-ARM軟件上對代碼進行進一步的編輯修改,直至生成最終的開發項目。

本書將使用STM32CubeMX軟件自帶的HAL固件庫來開發,書內附HAL庫詳解,HAL庫不同于以往的標準外設庫,是意法半導體公司最新推出的替代標準外設庫的產品。



意法半導體公司基于Cortex-M0內核的STM32F0系列微控制器產品既保留了對傳統8位和16位市場的壓倒性競爭力,又傳承了STM32的開發平臺和程序代碼,是入門STM32開發的不二之選。本書以STM32F072VBT6微控制器為例,從整體架構、存儲器、時鐘、異常處理、DMA和外設模塊等方面對片內功能和開發方法做了詳細的介紹。

不僅如此,意法公司專門針對旗下不同系列的微控制器產品還推出了一款全新的開發軟件——STM32CubeMX,該軟件允許用戶使用圖形化界面簡單直觀地對目標微控制器的引腳、時鐘和外設進行初始化設置,并可針對不同的集成開發環境快速生成開發項目,這無疑是STM32入門用戶的最重大的利好消息。而本書正是介紹如何使用STM32CubeMX及其附帶的HAL庫完成STM32F0系列微控制器開發的入門書籍。

本書特點:

·詳細介紹STM32F072VBT6微控制器的整體架構和片內外設模塊的功能。

·介紹使用STM32CubeMX軟件生成初始化源代碼并配置時鐘及外設,以快速創建開發項目。

·介紹如何使用基于STM32CubeMX軟件自帶的HAL庫進行程序開發。

·書內有HAL庫的函數、結構體、常量等的詳細說明及開發實例。

·本書所有代碼可以從華章網站下載:www.hzbook.com。
目錄:

第一篇 系統架構
第1章 “芯”系ARM 2
1.1 強勁的ARM芯 2
1.1.1 最成功的科技公司 2
1.1.2 ARMv6-M架構 3
1.1.3 Cortex-M0處理器簡介 3
1.1.4 Cortex-M0處理器的特點 5
1.1.5 RISC架構 6
1.1.6 AMBA總線 6
1.1.7 微控制器軟件接口標準(CMSIS) 7
1.2 STM32系列微控制器 9
1.2.1 STM32微控制器家族 9
1.2.2 STM32的命名規則 9
1.2.3 STM32F0系列微控制器功能概述 13
第2章 開發環境 17
2.1 軟件開發工具 17
2.1.1 MDK-ARM集成開發環境 18
2.1.2 安裝MDK-ARM軟件 21
2.1.3 STM32CubeMX軟件 27
2.1.4 安裝STM32CubeMX軟件 34
2.2 硬件開發工具 46
2.2.1 仿真/編程器 47
2.2.2 STM32系統板 51
2.3 項目建立 52
2.3.1 新建開發項目 52
2.3.2 查看項目文件 62
2.3.3 打開項目 64
2.3.4 查看項目屬性 69
2.3.5 編譯項目 73
第3章 GPIO 76
3.1 GPIO概述 76
3.1.1 GPIO的功能 76
3.1.2 GPIO的位結構 78
3.1.3 GPIO的特殊功能 80
3.1.4 GPIO的寄存器分類 82
3.2 GPIO函數 82
3.2.1 GPIO類型定義 82
3.2.2 GPIO常量定義 83
3.2.3 GPIO函數定義 84
3.3 GPIO應用實例 86
3.3.1 生成開發項目 86
3.3.2 主程序文件結構解析 90
3.3.3 外設初始化過程分析 94
第4章 HAL庫 98
4.1 HAL庫結構 98
4.1.1 HAL庫的特點 98
4.1.2 HAL庫的構成 99
4.1.3 HAL庫用戶應用程序 99
4.2 HAL庫文件 101
4.2.1 HAL庫頭文件 101
4.2.2 HAL庫源文件 104
第5章 系統配置 107
5.1 系統架構 107
5.1.1 總線結構 107
5.1.2 存儲器的組織 108
5.1.3 啟動配置 108
5.2 Flash存儲器 110
5.2.1 Flash的讀操作 110
5.2.2 Flash的寫和擦除操作 111
5.2.3 Flash讀保護 113
5.2.4 Flash寫保護 114
5.2.5 Flash中斷 114
5.2.6 CRC計算單元 114
5.3 選項字節 115
5.3.1 選項字節的格式 115
5.3.2 選項字節編程 118
5.4 Flash函數 119
5.4.1 Flash類型定義 119
5.4.2 Flash常量定義 120
5.4.3 Flash函數定義 121
5.5 CRC函數 128
5.5.1 CRC類型定義 128
5.5.2 CRC常量定義 129
5.5.3 CRC函數定義 131
第6章 時鐘 135
6.1 概述 135
6.1.1 時鐘樹的結構 135
6.1.2 時鐘源 137
6.1.3 時鐘安全 140
6.1.4 時鐘應用 140
6.1.5 低功耗模式下的時鐘 141
6.1.6 復位 141
6.2 RCC函數 143
6.2.1 RCC類型定義 143
6.2.2 RCC常量定義 145
6.2.3 RCC函數定義 152
6.3 時鐘控制實例 159
第7章 電源控制 162
7.1 供電管理 162
7.1.1 供電引腳 162
7.1.2 上電復位和掉電復位 165
7.1.3 可編程電壓檢測器 166
7.2 低功耗模式 166
7.2.1 低功耗模式的分類 166
7.2.2 睡眠模式 167
7.2.3 停機模式 168
7.2.4 待機模式 169
7.2.5 自動喚醒 170
7.3 電源控制函數 170
7.3.1 電源控制類型定義 170
7.3.2 電源控制常量定義 171
7.3.3 電源控制函數定義 172
7.4 低功耗模式應用實例 178
7.4.1 從停機模式喚醒 178
7.4.2 從待機模式喚醒 180
第8章 DMA控制器 183
8.1 DMA概述 183
8.1.1 DMA控制器內部結構 183
8.1.2 DMA的處理過程 183
8.1.3 DMA中斷 186
8.1.4 DMA請求映射 186
8.2 DMA函數 189
8.2.1 DMA類型定義 189
8.2.2 DMA常量定義 190
8.2.3 DMA函數定義 191
8.3 DMA應用實例 194
第9章 異常 198
9.1 Cortex-M0的異常處理 198
9.1.1 異常的特點 198
9.1.2 嵌套向量中斷控制器 201
9.1.3 中斷的使能 201
9.1.4 中斷請求的掛起和清除 202
9.1.5 中斷優先級控制 204
9.1.6 SysTick定時器 204
9.2 擴展中斷和事件控制器(EXTI) 207
9.2.1 事件線概述 207
9.2.2 事件線的控制邏輯 208
9.2.3 事件線的配置方法 210
9.2.4 EXTI喚醒 210
9.2.5 中斷服務程序(ISR) 210
9.3 異常相關函數 212
9.3.1 異常類型定義 212
9.3.2 異常常量定義 213
9.3.3 異常函數定義 213
9.4 EXTI應用實例 219
第二篇 外設模塊
第10章 模擬-數字轉換器 224
10.1 ADC模塊概述 224
10.1.1 ADC的內部結構 224
10.1.2 ADC校準 225
10.1.3 ADC的啟動和關閉 226
10.1.4 ADC時鐘 228
10.2 ADC功能配置 229
10.2.1 ADC的基礎配置 229
10.2.2 ADC的轉換模式 230
10.2.3 A/D轉換的啟動和停止 231
10.2.4 A/D轉換時序 232
10.2.5 ADC過沖 233
10.2.6 管理轉換數據 235
10.2.7 ADC的低功耗特性 235
10.2.8 模擬看門狗 237
10.2.9 ADC的內部通道轉換 238
10.2.10 ADC中斷 240
10.3 ADC函數 241
10.3.1 ADC類型定義 241
10.3.2 ADC常量定義 242
10.3.3 ADC函數定義 246
10.4 ADC的應用實例 253
10.4.1 數字顯示電壓值 254
10.4.2 讀取溫度傳感器 256
第11章 數字-模擬轉換器 259
11.1 DAC模塊概述 259
11.1.1 DAC的內部結構 259
11.1.2 DAC數據格式 260
11.1.3 DAC通道轉換 261
11.1.4 DAC觸發選擇 262
11.1.5 DAC的DMA請求 262
11.2 DAC波形生成 263
11.2.1 噪聲波生成 263
11.2.2 三角波生成 264
11.2.3 DAC雙通道轉換 264
11.3 DAC函數 266
11.3.1 DAC類型定義 266
11.3.2 DAC常量定義 266
11.3.3 DAC函數定義 267
11.4 DAC應用實例 277
第12章 模擬比較器 281
12.1 模擬比較器概述 281
12.1.1 模擬比較器的功能 281
12.1.2 模擬比較器的內部結構 281
12.2 模擬比較器的函數 282
12.2.1 模擬比較器類型定義 282
12.2.2 模擬比較器常量定義 283
12.2.3 模擬比較器函數定義 285
12.3 模擬比較器應用實例 288
第13章 實時時鐘 291
13.1 RTC概述 291
13.1.1 RTC主要特性 291
13.1.2 時鐘和日歷 294
13.1.3 可編程報警 294
13.2 RTC操作 295
13.2.1 RTC初始化 295
13.2.2 讀取日歷寄存器 296
13.2.3 RTC同步 297
13.2.4 RTC參考時鐘檢測 298
13.2.5 RTC平滑數字校準 298
13.2.6 時間戳 299
13.2.7 侵入檢測 299
13.2.8 時鐘輸出 300
13.2.9 RTC低功耗模式 301
13.2.10 RTC中斷 301
13.3 RTC函數 302
13.3.1 RTC類型定義 302
13.3.2 RTC常量定義 305
13.3.3 RTC函數定義 310
13.4 RTC應用實例 326
第14章 定時器 329
14.1 定時器概述 329
14.1.1 定時器配置 329
14.1.2 TIM1的功能 330
14.1.3 計數時鐘 336
14.2 捕捉/比較通道 338
14.2.1 捕捉/比較通道結構 338
14.2.2 輸入捕捉模式 340
14.2.3 PWM輸入模式 341
14.2.4 強制輸出模式 342
14.2.5 輸出比較模式 342
14.2.6 PWM模式 343
14.2.7 互補輸出和死區控制 345
14.2.8 剎車及清除參考信號 347
14.2.9 單脈沖模式 350
14.2.10 外部觸發同步 352
14.3 定時器函數 355
14.3.1 定時器類型定義 355
14.3.2 定時器常量定義 359
14.3.3 定時器函數定義 366
14.4 TIM1應用實例 417
14.4.1 測量信號周期 418
14.4.2 生成PWM信號 420
14.4.3 體驗PWM輸入模式 422
第15章 看門狗 425
15.1 獨立看門狗 425
15.1.1 IWDG的功能 425
15.1.2 特殊狀態下的IWDG 427
15.2 窗口看門狗 427
15.2.1 WWDG的內部結構和時間窗口 427
15.2.2 WWDG的高級功能 428
15.3 看門狗函數 429
15.3.1 看門狗類型定義 429
15.3.2 看門狗常量定義 430
15.3.3 看門狗函數定義 430
15.4 IWDG應用實例 433
第16章 I2C總線接口 436
16.1 I2C模塊概述 436
16.1.1 I2C模塊的功能 436
16.1.2 I2C工作模式 437
16.1.3 I2C的初始化 439
16.1.4 數據傳輸 442
16.2 I2C從機模式 444
16.2.1 I2C從機初始化 444
16.2.2 從機時鐘延長 444
16.2.3 從機發送 445
16.2.4 從機接收 448
16.3 I2C主模式 449
16.3.1 主機接收 450
16.3.2 主機發送 452
16.4 SMBus 454
16.4.1 SMBus的特點 454
16.4.2 SMBus的功能 455
16.4.3 SMBus初始化 457
16.4.4 SMBus從機模式 458
16.5 I2C模塊的控制功能 462
16.5.1 I2C低功耗模式 462
16.5.2 錯誤條件 462
16.5.3 DMA請求 463
16.5.4 I2C中斷 464
16.6 I2C函數 465
16.6.1 I2C類型定義 465
16.6.2 I2C常量定義 468
16.6.3 I2C函數定義 472
16.7 I2C應用實例 510
第17章 SPI總線接口 513
17.1 SPI概述 513
17.1.1 SPI模塊的特點 513
17.1.2 SPI的工作方式 514
17.1.3 SPI的主從選擇 516
17.1.4 SPI的幀格式 518
17.2 SPI通信 519
17.2.1 SPI的通信流程 519
17.2.2 SPI的狀態標志 523
17.2.3 SPI的錯誤標志 523
17.2.4 NSS脈沖模式 524
17.2.5 SPI的CRC計算 525
17.2.6 SPI中斷 525
17.3 SPI函數 526
17.3.1 SPI類型定義 526
17.3.2 SPI常量定義 528
17.3.3 SPI函數定義 532
17.4 SPI的應用實例 554
第18章 通用同步異步收發器 557
18.1 USART概述 557
18.1.1 USART的結構 557
18.1.2 USART的幀格式 559
18.1.3 USART發送器 559
18.1.4 USART接收器 563
18.1.5 波特率 564
18.2 USART通信 566
18.2.1 多機通信 566
18.2.2 校驗控制 567
18.2.3 USART同步模式 568
18.2.4 利用DMA實現連續通信 568
18.2.5 USART的控制功能 571
18.2.6 USART的中斷 573
18.3 USART函數 575
18.3.1 UART類型定義 575
18.3.2 UART常量定義 581
18.3.3 USART函數定義 590
18.4 USART應用實例 623
第19章 觸摸傳感控制器 626
19.1 TSC概述 626
19.1.1 TSC的內部結構 626
19.1.2 表面電荷遷移檢測原理 628
19.1.3 表面電荷遷移采集順序 628
19.1.4 擴展頻譜和最大計數錯誤 630
19.1.5 TSC的I/O模式 630
19.1.6 TSC采集過程 631
19.1.7 TSC的低功耗模式和中斷 632
19.2 TSC函數 632
19.2.1 TSC類型定義 632
19.2.2 TSC常量定義 633
19.2.3 TSC函數定義 636
19.3 TSC應用實例 641
第20章 控制器局域網 644
20.1 CAN總線 644
20.1.1 顯性與隱性 644
20.1.2 報文 645
20.2 bxCAN模塊 648
20.2.1 bxCAN的結構 648
20.2.2 bxCAN的工作模式 650
20.2.3 bxCAN的測試模式 651
20.3 bxCAN通信 652
20.3.1 發送管理 652
20.3.2 接收管理 653
20.3.3 標識符過濾 655
20.3.4 報文存儲 659
20.3.5 位時間 659
20.3.6 bxCAN中斷 660
20.4 bxCAN函數 662
20.4.1 bxCAN類型定義 662
20.4.2 bxCAN常量定義 664
20.4.3 bxCAN函數定義 666
20.5 bxCAN應用實例 671
第21章 通用串行總線 674
21.1 USB概述 674
21.1.1 USB總線結構 674
21.1.2 USB端點 675
21.1.3 USB通信管道 676
21.1.4 包的字段格式 676
21.1.5 USB的包類型 677
21.1.6 USB的事務處理 679
21.1.7 USB數據傳輸的類型 680
21.1.8 USB設備描述符 681
21.1.9 標準設備請求 683
21.1.10 USB的設備狀態 687
21.1.11 USB總線的枚舉過程 687
21.2 USB模塊 689
21.2.1 USB模塊的結構 689
21.2.2 USB模塊數據傳輸 691
21.3 USB總線編程 691
21.3.1 USB復位操作 692
21.3.2 分組緩沖區 692
21.3.3 端點初始化 693
21.3.4 IN分組 693
21.3.5 OUT和SETUP分組 694
21.3.6 控制傳輸 695
21.3.7 雙緩沖端點 696
21.3.8 同步傳輸 697
21.3.9 掛起/恢復事件 698
21.4 USB函數 699
21.4.1 USB類型定義 699
21.4.2 USB常量定義 701
21.4.3 USB函數定義 701
21.5 USB編程實例 711
附錄 719
附錄A STM32F072VBT6系統板電路原理圖 720
附錄B STM32F072VBT6全功能開發板 721
附錄C STM32F0核心板、顯示模塊及編程器 722
附錄D STM32F072VBT6微控制器引腳定義 723
附錄E STM32F072VBT6微控制器引腳功能 724
附錄F STM32F072VBT6微控制器端口復用功能映射表 731
附錄G STM32F072VBT6微控制器存儲器映像和外設寄存器編址 735
附錄H 寄存器特性縮寫列表 738
附錄I 術語和縮寫對照表 739
附錄J 本書源代碼清單及下載鏈接 741
序: