STM32F0系列Cortex-M0原理與實踐 ( 簡體 字) |
作者:張燕妮 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> STM32 2. -> 電腦組織與體系結構 -> 嵌入式系統 -> Cortex |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 43376 詢問書籍請說出此書號!【缺書】 NT售價: 240 元 |
出版日:2/1/2016 |
頁數:272 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121280863 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:如果問一個設計人員,產品設計時,選擇器件最關心的因素是什么,那么跟得上形勢發展可能是常見的、很重要的一個因素。如果問老板選擇器件最關心的因素是什么,可能只有“便宜”兩個字。ST公司的STM32F0x芯片是一款基于Cortex-M0,兼顧性能與價格優勢于一體的32位處理器。ST公司的Cortex-M3系列產品已經在國內擁有大量客戶群體,STM32F0x芯片的用戶群也在日益擴大中。 Cortex-M0芯片具有小型、低功耗、低閘數、精簡程序代碼的特點,內建各種模擬與混合信號組件及多種高速通信能力器件,開發人員可以直接跳過16位系統,以接近8位系統的成本開銷獲取32 位系統的性能。Cortex-M0芯片是學習ARM處理器的最佳入門選擇。 STM32F0x在Cortex-M0芯片基礎上繼承了ST公司Cortex-M3系列產品優點,并對一些不足之處進行了修正(例如I2C外設),還增加了一些優秀功能(例如USART的超時檢測),適用于工業控制器、家庭自動化、打印機和白色家電、游戲機、DVD/藍光播放機和音頻/視頻接收機等。 STM32F0x具有如下特點。 ? 百貨迎百客,按需選擇:STM32F0x根據外設情況,將產品劃分成多種系列,并不是一種大而全的芯片,用戶可根據產品需求與成本選用不同芯片。例如,對于是否需要CAN通信就限制選擇范圍與成本。 ? 一招鮮吃遍天下:STM32F0x家族成員比較多,但不代表各自為政。STM32F0x家族的外設與引腳位置不是一對一。在相同封裝下STM32F0x芯片引腳定義相同,通過外設復用選用不同外設。而且借助ST公司提供STM32F0x固件庫開發的應用程序可在STM32F0x家族(只要包含該外設)隨意運行。書中的代碼除了CAN通信一章,程序可以在各種STM32F0x上運行。 全書共17章。其中第1∼4章是基礎;第5∼15章是外設功能講解;第16、17章是綜合實例與高級功能。 第 1 章首先講解相比8位機,Cortex-M0的優勢,以及如何從8位機過渡到Cortex-M0,并說明Cortex-M0的基礎與特征,主要有寄存器、存儲器映射、系統總線、存儲器保護單元、嵌套中斷控制器;最后一部分會說明STM32F0x在同類產品的優勢以及特點,為何選用STM32F0x進行產品的開發。 第 2 章主要講解了進行STM32F0軟件開發需要準備的條件,分別介紹了MDK以及J-ink、U-ink、Stlink仿真器。MDK是原Keil公司的產品,對于熟悉Keil C51單片機開發的用戶會感受到ARM公司對C8051用戶的重視,也非常歡迎該用戶群體過渡到Cortex-M0的開發中。 第 3 章講解有關硬件設計的基礎,主要包括STM32F0x的電源、時鐘,以及本書所使用的電路圖。 第4章講解進行STM32F0x軟件開發的固件庫內容。固件庫內容涉及了ARM公司的CMSIS標準及ST公司的固件庫標準。其中CMSIS是理解目前ARM對軟件組織結構以及系統啟動文件的規范,也是目前所有Cortex-M內核CPU軟件設計的要求與基礎。最后講解了使用ST公司固件庫建立工程文件的過程。 第5章∼第14章講解了STM32F0x的系統定時器、GPIO、NVIC、UART、I2C、SPI、ADC、DAC、PWM、定時器、CAN。每1章均提供了1∼2個實際項目中的使用實例,涉及實際開發中使用各種芯片的注意事項以及技巧(或者說作者的經驗教訓)。 第16章講解RTX操作系統,介紹Keil自帶的實時操作系統的原理與使用過程。結合第4章的超級循環和中斷模式,讀者可根據自己產品特點選用相應的軟件程序框架。 第17章是關于如何使用STM32F0x設計一個USB的電流、電壓檢測器,從設計需求、硬件設計、軟件設計等方面進行詳細分析,引導讀者如何做產品設計、開發。 本書的第1∼8章、第10∼11章和第13∼17章由張燕妮編寫,第9章由謝玲和王洪玲編寫,第12章由賈芳和丁維才編寫,同時丁維才對全書代碼進行了驗證。 感謝電子工業出版社的王敬棟、劉海艷兩位編輯對本書的大力支持。感謝家人與朋友的理解和支持。 由于STM32F0x家族的新成員仍在不斷增加中,并且作者水平有限以及時間倉促,難免有差錯和不足之處懇請讀者批評指正。
張燕妮 |
內容簡介:全書共16章,分為三部分。第一部分包括第1~4章,講解了Cortex-M0的優勢,以及STM32F0軟硬件開發的條件和STM32F0軟件開發的固件庫內容。第二部分包括第5~14章,講解了LPC17XX的系統定時器、GPIO、NVIC、UART、I2C、SPI、ADC、DAC、PWM、定時器。第三部分包括第15、16章,是綜合實例與關于RTX操作系統的高級功能介紹。 |
目錄:第1章 低成本單片機世界的入侵者——Cortex-M0 1 1.1 相比8位(16位)機為何要選擇Cortex-M0 1 1.1.1 性能對比 2 1.1.2 8位和16位體系結構的缺點 3 1.1.3 Cortex的軟件移植性 3 1.2 如何從8位機過渡到Cortex-M0 4 1.3 編程模型 7 1.3.1 處理器的模式 7 1.3.2 堆棧 8 1.3.3 內核寄存器 8 1.4 存儲器模型 11 1.4.1 存儲區、類型和屬性 12 1.4.2 存儲器系統的存儲器訪問次序 12 1.4.3 存儲器訪問的行為 13 1.4.4 軟件的存儲器訪問順序 13 1.5 異常模型 14 1.6 電源管理 19 1.7 指令集 20 1.8 Cortex-M0內核外設 23 1.9 STM32F0系列 23 1.10 小結 24 第2章 開發軟件準備 25 2.1 MDK-ARM開發環境 25 2.1.1 ?Vision4 IDE 概述 25 2.1.2 編譯、調試現有MDK工程 26 2.1.3 創建一個Keil新項目 27 2.2 仿真器 36 2.2.1 ST-Link 36 2.2.2 J-Link與U-Link2 37 2.3 WinMerge 37 2.4 小結 39 第3章 硬件基礎 40 3.1 STM32F0產品特征 40 3.2 系統及存儲器概述 41 3.2.1 系統構架 41 3.2.2 存儲器組織 42 3.2.3 啟動配置 42 3.3 電源控制(PWR) 43 3.3.1 電源 43 3.3.2 電源管理器 44 3.3.3 低功耗模式 45 3.3.4 PWR固件庫 46 3.4 復位和時鐘控制(RCC) 46 3.4.1 復位 46 3.4.2 時鐘 47 3.4.3 低功耗模式 51 3.5 RCC固件庫 52 3.6 硬件設計 53 3.7 小結 56 第4章 STM32F0的固件庫 57 4.1 ARM的C語言 57 4.1.1 嵌入式C語言的幾個特殊之處 57 4.1.2 寄存器訪問方式總結 59 4.1.3 struct字節對齊 60 4.1.4 使用volatile 62 4.1.5 RAM中運行程序 62 4.1.6 軟件結構 64 4.2 CMSIS 65 4.2.1 CMSIS主要構成 65 4.2.2 使用CMSIS 66 4.3 STM32F0xx標準外設庫 67 4.3.1 標準外設庫概述 67 4.3.2 STM32F0xx外設驅動文件說明 68 4.3.3 STM32F0xx的CMSIS文件說明 69 4.3.4 庫文件夾說明 70 4.3.5 固件庫文件 71 4.3.6 MDK ARM中使用固件庫實例 74 4.4 小結 75 第5章 通用I/O(GPIO) 76 5.1 GPIO引腳與功能 76 5.1.1 引腳描述 76 5.1.2 GPIO功能描述 77 5.1.3 通用I/O(GPIO) 79 5.1.4 I/O引腳的復用功能和重映射 79 5.1.5 外部中斷/喚醒線 80 5.1.6 輸入配置 80 5.1.7 輸出配置 80 5.1.8 復用功能配置 80 5.1.9 模擬配置 81 5.1.10 HSE或LSE引腳用作GPIO 81 5.1.11 備份域供電下GPIO引腳的使用 81 5.1.12 GPIO復用功能寄存器 81 5.2 GPIO固件庫 83 5.3 GPIO應用實例 84 5.4 小結 87 第6章 中斷和事件 88 6.1 嵌套向量中斷控制器(NVIC) 88 6.1.1 NVIC概述 88 6.1.2 電平中斷和脈沖中斷 90 6.2 中斷和異常向量 91 6.3 擴展中斷和事件控制器(EXTI) 93 6.3.1 框圖 93 6.3.2 事件管理 94 6.3.3 功能說明 94 6.3.4 外部和內部中斷/事件線映像 95 6.4 EXTI固件庫 96 6.5 EXTI中斷實例 96 6.6 HardFault異常調試實例 98 6.7 小結 99 第7章 通用同步異步收發器(USART) 100 7.1 USART主要功能 100 7.2 STM32F0x的USART功能實現 101 7.3 USART功能描述 102 7.3.1 USART框圖 102 7.3.2 USART字符描述 103 7.3.3 發送器 104 7.3.4 接收器 106 7.3.5 多機通信 110 7.3.6 Modbus通信 111 7.3.7 LIN(本地互聯網絡)模式 112 7.3.8 USART同步模式 113 7.3.9 單線半雙工通信 114 7.3.10 RS-232硬件流控制和RS-485驅動使能 114 7.4 USART中斷 116 7.5 USART固件庫函數 117 7.6 基于USART實現的多個通信標準 121 7.7 接收不定長數據實例 123 7.8 小結 125 第8章 實時時鐘(RTC) 126 8.1 主要特性 126 8.2 STM32F0的RTC功能實現 127 8.3 功能描述 127 8.3.1 RTC框圖 127 8.3.2 被RTC控制的GPIO 128 8.3.3 時鐘和預分頻器 128 8.3.4 實時時鐘和日歷 128 8.3.5 可編程報警 129 8.3.6 RTC初始化及配置 129 8.3.7 讀日歷寄存器 130 8.3.8 復位過程 131 8.3.9 RTC同步 131 8.3.10 RTC參考時鐘檢測 131 8.3.11 RTC平滑數字校準 132 8.3.12 時間戳功能 132 8.3.13 侵入檢測 132 8.3.14 校準時鐘輸出 133 8.3.15 報警輸出 134 8.4 RTC低功耗模式 134 8.5 RTC中斷 134 8.6 固件庫 135 8.7 鬧鐘報警實例 137 8.8 小結 141 第9章 看門狗 142 9.1 STM32F0看門狗概述 142 9.2 獨立看門狗(IWDG) 143 9.3 窗口看門狗(WWDG) 145 9.4 固件庫 146 9.4.1 IWDG API 146 9.4.2 WWDG固件庫 147 9.5 看門狗實例 148 9.6 小結 149 第10章 定時器 150 10.1 STM32F0定時器實現 150 10.2 功能描述 151 10.2.1 時基單元 152 10.2.2 計數器 153 10.2.3 時鐘源 154 10.2.4 捕獲/比較通道 155 10.2.5 輸入捕獲模式 156 10.2.6 強制輸出模式 157 10.2.7 輸出比較模式 157 10.2.8 PWM模式 158 10.2.9 互補輸出和死區插入 160 10.2.10 使用剎車功能 161 10.2.11 產生六步PWM輸出 162 10.2.12 編碼器接口模式 163 10.3 固件庫 164 10.4 SPWM實例 168 10.5 小結 171 第11章 模數轉換器(ADC) 172 11.1 ADC主要特性 172 11.2 ADC功能描述 173 11.2.1 校準 174 11.2.2 ADC開關控制 174 11.2.3 ADC時鐘 175 11.2.4 ADC配置 176 11.2.5 通道選擇 176 11.2.6 轉換模式 176 11.2.7 啟動與停止轉換 177 11.3 外部觸發和觸發極性 178 11.4 數據管理 179 11.5 低功耗特性 180 11.6 ADC中斷 181 11.7 ADC固件庫 181 11.8 STM32F05x(07x)的DAC與比較器 183 11.9 USB電壓監測 184 11.10 小結 186 第12章 DMA控制 187 12.1 DMA主要特性 187 12.2 DMA功能描述 187 12.2.1 DMA原理 187 12.2.2 可編程的數據寬度、數據對齊方式和數據大小端 190 12.2.3 錯誤管理 190 12.2.4 中斷 190 12.2.5 DMA請求映射 190 12.3 固件庫 191 12.4 基于DMA的ADC采樣 192 12.5 小結 195 第13章 串行外設接口/I2S音頻(SPI/I2S) 196 13.1 簡介 196 13.1.1 SPI主要特點 196 13.1.2 SPI/I2S具體功能實現 197 13.2 SPI功能描述 197 13.2.1 SPI框圖 197 13.2.2 一主、一從通信 198 13.2.3 多從機通信 200 13.2.4 從機選擇(NSS)的引腳管理 200 13.2.5 通信格式 201 13.2.6 SPI的初始化 202 13.2.7 數據發送和接收流程 202 13.2.8 狀態標志 204 13.2.9 錯誤標志 204 13.3 SPI中斷 205 13.4 SPI固件庫 206 13.5 SPI相互通信實例 207 13.6 小結 209 第14章 I2C接口 210 14.1 I2C的主要特點 210 14.2 I2C功能描述 211 14.2.1 I2C1框圖 211 14.2.2 I2C模式 212 14.2.3 I2C的初始化 212 14.2.4 數據收發 213 14.2.5 I2C從機模式 215 14.2.6 I2C主模式 217 14.3 I2C中斷 219 14.4 I2C固件庫 220 14.5 讀/寫24C02實例 221 14.6 小結 224 第15章 控制器局域網bxCAN 225 15.1 bxCAN概述 225 15.2 bxCAN工作模式 226 15.2.1 初始化模式 227 15.2.2 正常模式 227 15.2.3 睡眠模式(低功耗) 228 15.2.4 測試模式 228 15.2.5 靜默模式 228 15.2.6 環回模式 228 15.2.7 環回靜默模式 229 15.3 bxCAN功能描述 229 15.3.1 發送 229 15.3.2 時間觸發通信模式 231 15.3.3 接收管理 231 15.3.4 標識符過濾 232 15.3.5 報文存儲 233 15.3.6 錯誤管理 234 15.3.7 位時間特性 234 15.4 bxCAN中斷 235 15.5 bxCAN固件庫 235 15.6 CAN通信實例 237 15.7 小結 241 第16章 RTX實時操作系統應用 242 16.1 RTX概述 242 16.1.1 RTX任務 243 16.1.2 RTX調度 245 16.2 任務通信 247 16.2.1 事件標志 247 16.2.2 互斥量 248 16.2.3 信箱 249 16.3 RTX基礎配置 251 16.4 中斷任務之間的通信實例 252 16.5 小結 254 第17章 USB電源監測 255 17.1 需求分析 255 17.2 硬件設計 255 17.3 軟件設計 256 17.4 小結 259 |
序: |