《STM32F0系列Cortex-M0原理與實踐》是2016年電子工業出版社出版的圖書,作者是張燕妮。
基本介紹
- 中文名:STM32F0系列Cortex-M0原理與實踐
- 作者:張燕妮
- 出版社:電子工業出版社
- 出版時間:2016年2月1日
- 頁數:272 頁
- 定價:48.00
- 開本:16 開
- 裝幀:平裝
- ISBN:9787121280863
內容簡介,作者簡介,圖書目錄,
內容簡介
全書共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
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