買這商品的人也買了...
- 
                
                   $180STM32 嵌入式微控制器快速上手, 2/e $180STM32 嵌入式微控制器快速上手, 2/e
- 
                
                   原子教你玩 STM32 (庫函數版第2版) 原子教你玩 STM32 (庫函數版第2版)$474$450
- 
                
                   活學活用 LTspice 電路設計 (精益設計) 活學活用 LTspice 電路設計 (精益設計)$330$314
- 
                
                   $414例說 STM32 (第3版) $414例說 STM32 (第3版)
- 
                
                   $354實戰 Python 設計模式:可復用面向對象軟件開發實踐 $354實戰 Python 設計模式:可復用面向對象軟件開發實踐
- 
                
                   $250ARM Cortex-M3嵌入式開發及應用(STM32系列) $250ARM Cortex-M3嵌入式開發及應用(STM32系列)
- 
                
                   STM32Cube 高效開發教程 (基礎篇) STM32Cube 高效開發教程 (基礎篇)$719$683
- 
                
                   立創 EDA (專業版) 電路設計與製作快速入門 立創 EDA (專業版) 電路設計與製作快速入門$294$279
- 
                
                   $659PySide 6/PyQt 6 快速開發與實戰 $659PySide 6/PyQt 6 快速開發與實戰
- 
                
                   ESP32 物聯網智能硬件開發實戰 (視頻講解版) ESP32 物聯網智能硬件開發實戰 (視頻講解版)$479$455
- 
                
                   $607巧學易用單片機 — 從零基礎入門到項目實戰 $607巧學易用單片機 — 從零基礎入門到項目實戰
- 
                
                   STM32 韌體開發實戰 (標準庫) STM32 韌體開發實戰 (標準庫)$450$356
- 
                
                   AI 輔助編程入門:使用 GitHub Copilot 零基礎開發 LLM 應用 AI 輔助編程入門:使用 GitHub Copilot 零基礎開發 LLM 應用$534$507
- 
                
                   AI 輔助編程 Python 實戰基於 GitHub Copilot 和 ChatGPT AI 輔助編程 Python 實戰基於 GitHub Copilot 和 ChatGPT$539$512
- 
                
                   基於 STM32 的嵌入式系統開發與應用 基於 STM32 的嵌入式系統開發與應用$354$336
- 
                
                   PyQt 6 實戰派 PyQt 6 實戰派$768$730
- 
                
                   STM32單片機應用基礎與項目實踐-微課版(第2版) STM32單片機應用基礎與項目實踐-微課版(第2版)$354$336
- 
                
                   $1,008物聯網的安全與隱私範式(精) $1,008物聯網的安全與隱私範式(精)
- 
                
                   AIoT 智能物聯網全棧測試技術:從原理到實戰 AIoT 智能物聯網全棧測試技術:從原理到實戰$474$450
- 
                
                   智能物聯網與深度學習 智能物聯網與深度學習$474$450
- 
                
                   $324STM32應用技術項目實踐 $324STM32應用技術項目實踐
- 
                
                   ESP32 專題實作 (ChatGPT × APP Inventor 應用) ESP32 專題實作 (ChatGPT × APP Inventor 應用)$560$504
- 
                
                   嵌入式系統原理與應用 ——基於STM32硬件和Proteus仿真 嵌入式系統原理與應用 ——基於STM32硬件和Proteus仿真$299$284
- 
                
                   物聯網漏洞挖掘與利用:方法、技巧和案例 物聯網漏洞挖掘與利用:方法、技巧和案例$594$564
- 
                
                   $207物聯網系統開發技術 $207物聯網系統開發技術
商品描述
本書以意法半導體公司新推出的基於Arm Cortex-M0+的STM32G071 MCU為硬件平臺,以意法半導體公司的STM32CubeMX和Arm公司的Keil μVision(Arm版本)集成開發環境(以下簡稱Keil)為軟件平臺,以Cortex-M0+處理器結構、高級微控制總線結構、Cortex-M0+處理器指令集和應用、C語言應用開發、外設驅動與控制,以及RT-Thread操作系統為主線,由淺入深、由易到難地系統介紹了基於STM32G071 MCU的32位嵌入式系統開發流程和實現方法。 本書側重於對基於Arm Cortex-M0+ MCU的32位嵌入式系統設計應用的講解,通過典型設計實例說明將嵌入式系統設計應用於不同的應用場景的方法,使得所設計的嵌入式系統在滿足應用場景要求的條件下實現成本、功耗和性能的最佳平衡。
目錄大綱
目    錄
第1章  軟件工具的下載、安裝和應用	1
1.1  STM32CubeMX工具的下載和安裝	1
1.1.1  STM32CubeMX工具的下載	1
1.1.2  STM32CubeMX工具的安裝	3
1.1.3  STM32G0系列MCU支持包的安裝	4
1.2  Keil ?Vision(Arm版本)工具的下載、安裝和授權	5
1.2.1  Keil ?Vision內嵌編譯工具鏈架構	6
1.2.2  Keil ?Vision(Arm版本)工具的下載和安裝	6
1.2.3  Keil ?Vision(Arm版本)工具的授權	9
1.3  設計	11
實例:LED的驅動和控制	11
1.3.1  生成簡單的工程	11
1.3.2  添加設計代碼	14
1.3.3  編譯和下載設計	16
第2章  Cortex-M0+處理器結構	18
2.1  Cortex-M0+處理器和核心外設	18
2.1.1  Cortex-M0+處理器核	19
2.1.2  系統級接口	21
2.1.3  可配置的調試	21
2.1.4  核心外設	22
2.2  Cortex-M0+處理器的寄存器	22
2.2.1  通用寄存器	22
2.2.2  堆棧指針	23
2.2.3  程序計數器	23
2.2.4  鏈接寄存器	24
2.2.5  程序狀態寄存器	24
2.2.6  可中斷重啟指令	27
2.2.7  異常屏蔽寄存器	27
2.2.8  優先級屏蔽寄存器	27
2.2.9  控制寄存器	27
2.3  Cortex-M0+處理器的存儲空間結構	28
2.3.1  存儲空間映射	28
2.3.2  代碼區域地址映射	30
2.3.3  SRAM區域地址映射	31
2.3.4  外設區域地址映射	32
2.3.5  PPB地址空間映射	34
2.3.6  SCS地址空間映射	35
2.3.7  系統控制和ID寄存器	36
2.4  Cortex-M0+處理器的端及分配	40
2.5  Cortex-M0+處理器的異常及處理	41
2.5.1  異常所處的狀態	41
2.5.2  異常類型	41
2.5.3  異常優先級	42
2.5.4  向量表	43
2.5.5  異常的進入和返回	44
2.5.6  NVIC中的中斷寄存器集	46
2.5.7  電平和脈沖中斷	48
2.6  Cortex-M0+處理器的存儲器保護單元	49
2.6.1  MPU寄存器	50
2.6.2  MPU訪問權限屬性	54
2.6.3  更新MPU區域	55
2.6.4  子區域及用法	55
2.6.5  MPU設計技巧和提示	56
第3章  高級微控制器總線結構	57
3.1  Arm AMBA系統總線	57
3.2  AMBA APB規範	58
3.2.1  AMBA APB寫傳輸	58
3.2.2  AMBA APB讀傳輸	59
3.2.3  AMBA APB錯誤響應	60
3.2.4  AMBA APB操作流程	61
3.2.5  AMBA3 APB信號	62
3.3  AMBA AHB規範	62
3.3.1  AMBA AHB結構	62
3.3.2  AMBA AHB操作	63
3.3.3  AMBA AHB傳輸類型	66
3.3.4  AMBA AHB猝發操作	67
3.3.5  AMBA AHB傳輸控制信號	71
3.3.6  AMBA AHB地址解碼	72
3.3.7  AMBA AHB從設備傳輸響應	72
3.3.8  AMBA AHB數據總線	75
3.3.9  AMBA AHB傳輸仲裁	77
3.3.10  AMBA AHB分割傳輸	82
3.3.11  AMBA AHB復位	84
3.3.12  AMBA AHB總線數據寬度	84
3.3.13  AMBA AHB接口設備	86
第4章  Cortex-M0+處理器指令集和應用	88
4.1  Thumb指令集	88
4.2  Keil MDK匯編語言指令格式要點	89
4.2.1  匯編語言源代碼中的文字	89
4.2.2  匯編語言源代碼行的語法	89
4.2.3  匯編語言指令後綴的含義	91
4.3  寄存器說明符的限制規則	91
4.3.1  使用0b1111作為寄存器說明符的規則	91
4.3.2  使用0b1101作為寄存器說明符的規則	92
4.4  寄存器傳輸指令	92
4.5  存儲器加載和保存指令	94
4.5.1  存儲器加載指令	94
4.5.2  存儲器保存指令	98
4.6  多數據加載和保存指令	101
4.6.1  多數據加載指令	101
4.6.2  多數據保存指令	102
4.7  堆棧訪問指令	103
4.8  算術運算指令	104
4.8.1  加法指令	104
4.8.2  減法指令	107
4.8.3  乘法指令	108
4.8.4  比較指令	109
4.9  邏輯操作指令	110
4.10  移位操作指令	112
4.10.1  右移指令	112
4.10.2  左移指令	114
4.11  反序操作指令	115
4.12  擴展操作指令	116
4.13  程序流控制指令	117
4.14  存儲器屏障指令	120
4.15  異常相關指令	121
4.16  休眠相關指令	121
4.17  其他指令	122
4.18  STM32G0的向量表格式	123
4.19  配置堆和堆棧	124
4.20  設計實例一:匯編語言程序的分析和調試	125
4.20.1  冒泡排序算法的基本思想	125
4.20.2  冒泡排序算法的設計實現	126
4.20.3  冒泡排序算法的調試	128
4.21  設計實例二:GPIO的驅動和控制	130
4.21.1  STM32G071的GPIO原理	130
4.21.2  所用寄存器的地址和功能	132
4.21.3  GPIO驅動和控制的實現	134
4.22  設計實例三:中斷的控制和實現	135
4.22.1  擴展中斷和事件控制器(EXTI)原理	136
4.22.2  所用寄存器的地址和功能	141
4.22.3  向量表信息	145
4.22.4  應用程序的設計	147
4.22.5  程序代碼的調試	149
第5章  Cortex-M0+ C語言應用開發	151
5.1  Arm C/C++編譯器選項	151
5.1.1  Arm編譯器的優化級別	151
5.1.2  Arm Compiler 5的參數設置選項	155
5.1.3  Arm Compiler 6的參數設置選項	157
5.2  CMSIS軟件架構	159
5.2.1  引入CMSIS的必要性	160
5.2.2  CMSIS的架構	160
5.2.3  CMSIS的優勢	161
5.2.4  CMSIS的編程規則	161
5.2.5  CMSIS軟件包	162
5.2.6  使用CMSIS訪問不同資源	163
5.3  C語言設計實例一:輸入/輸出重定向的實現	164
5.3.1  定製Microlib輸入/輸出函數	164
5.3.2  輸入/輸出函數重定向的實現原理	165
5.3.3  輸入/輸出函數重定向的具體實現	166
5.4  C語言設計實例二:1602字符型LCD的驅動	171
5.4.1  1602字符型LCD的原理	171
5.4.2  1602字符型LCD的處理流程	174
5.4.3  1602字符型LCD和開發板的硬件連接	175
5.4.4  程序代碼的設計	176
5.5  C語言設計實例三:中斷控制與1602字符型LCD的交互	178
5.5.1  程序代碼的設計	178
5.5.2  C語言中斷程序的分析	179
5.6  C語言設計實例四:軟件驅動的設計與實現	181
5.6.1  創建HAL的設計實例	181
5.6.2  創建LL的設計實例	183
第6章  電源、時鐘和復位的原理及應用	186
6.1  電源系統的原理及功能	186
6.1.1  電源系統框架	186
6.1.2  電源監控	188
6.1.3  低功耗模式	190
6.2  RCC中的時鐘管理功能	194
6.2.1  RCC中的時鐘源	194
6.2.2  RCC中的時鐘樹結構	194
6.3  RCC中的復位管理功能	199
6.3.1  電源復位	199
6.3.2  系統復位	199
6.3.3  RTC域復位	200
6.4  低功耗設計實例一:從停止模式喚醒MCU的實現	201
6.4.1  設計策略和實現目標	201
6.4.2  程序設計和實現	201
6.5  低功耗設計實例二:定時器喚醒功耗分析	206
6.6  低功耗設計實例三:運行模式和低功耗模式狀態的顯示	210
6.6.1  第一種設計實現方法	210
6.6.2  第二種設計實現方法	212
第7章  看門狗的原理和應用	214
7.1  獨立看門狗的原理和功能	214
7.1.1  IWDG的結構	214
7.1.2  IWDG的工作原理	215
7.1.3  IWDG時鐘基準和超時的設置	216
7.2  系統窗口看門狗的原理和功能	216
7.2.1  WWDG的結構	216
7.2.2  WWDG的工作原理	217
7.2.3  WWDG時鐘基準和超時值的設置	217
7.2.4  WWDG中斷	218
7.3  獨立看門狗設計實例:實現與分析	218
7.3.1  生成工程框架	218
7.3.2  添加設計代碼	220
7.3.3  設計下載和分析	222
第8章  步進電機的驅動和控制	223
8.1  低功耗定時器的結構及功能	223
8.1.1  LPTIM的結構	223
8.1.2  LPTIM的功能	228
8.2  高級控制定時器的結構及功能	229
8.2.1  TIM1的結構	229
8.2.2  TIM1的功能	230
8.3  設計實例:步進電機的驅動和信號測量	265
8.3.1  步進電機的設計原理	265
8.3.2  步進電機的驅動電路	266
8.3.3  霍爾傳感器的測速原理	267
8.3.4  系統硬件連接	268
8.3.5  在STM32CubeMX中配置參數	268
8.3.6  在Keil ?Vision中添加設計代碼	271
8.3.7  設計處理和驗證	274
第9章  直流電機的驅動和控制	276
9.1  脈沖寬度調制的原理	276
9.2  直流風扇的驅動原理	276
9.2.1  直流風扇的規範和連線	276
9.2.2  PWM速度控制功能	277
9.2.3  脈沖傳感器(轉速輸出類型)	278
9.3  通用定時器的原理	278
9.3.1  TIM2/TIM3/TIM4的主要功能	279
9.3.2  TIM14的主要功能	280
9.3.3  TIM15的主要功能	281
9.3.4  TIM16/TIM17的主要功能	282
9.4  直流風扇驅動和測速的設計與實現	283
9.4.1  系統設計策略	283
9.4.2  系統硬件連接	284
9.4.3  應用程序的設計	285
9.4.4  設計處理和下載	291
第10章  紅外串口通信的設計和實現	292
10.1  低功耗通用異步收發器的原理	292
10.1.1  模塊結構	292
10.1.2  接口信號	294
10.1.3  數據格式	294
10.1.4  FIFO模式	296
10.1.5  單線半雙工模式	296
10.1.6  多處理器通信	296
10.1.7  發送器原理	298
10.1.8  接收器原理	298
10.1.9  波特率發生器	299
10.1.10  喚醒和中斷事件	300
10.2  通用同步異步收發器的原理	301
10.2.1  主要功能	301
10.2.2  接收器過採樣技術	302
10.2.3  同步模式	303
10.2.4  ISO/IEC 7816模式	304
10.2.5  串行紅外通信	305
10.2.6  自動波特率檢測	306
10.2.7  接收器超時	306
10.2.8  喚醒和中斷事件	306
10.3  設計實例:基於LPUART和紅外接口的串行通信的實現	307
10.3.1  紅外串行通信設計思路	307
10.3.2  串口的通信參數配置規則	308
10.3.3  紅外發射電路和紅外接收電路的設計	309
10.3.4  紅外接口的原理	311
10.3.5  信號的編碼與解碼	313
10.3.6  紅外通信系統的抗乾擾設計	313
10.3.7  發送端應用程序的設計與實現	314
10.3.8  接收端應用程序的設計與實現	319
第11章  音頻設備的驅動和控制	325
11.1  外設串行接口概述	325
11.1.1  SPI模塊的主要特性	325
11.1.2  I2S模塊的主要特性	326
11.2  SPI模塊的結構和功能	326
11.2.1  SPI模塊的結構	326
11.2.2  一個主設備和一個從設備的通信	327
11.2.3  標準的多個從設備通信	329
11.2.4  多個主設備通信	330
11.2.5  從設備選擇引腳管理	330
11.2.6  通信格式	331
11.2.7  配置SPI	332
11.2.8  使能SPI的步驟	333
11.2.9  數據發送和接收過程	333
11.2.10  SPI狀態位	340
11.2.11  SPI錯誤標誌	341
11.2.12  NSS脈沖模式	342
11.2.13  TI模式	342
11.2.14  CRC計算	343
11.2.15  SPI中斷	344
11.3  I2S模塊的結構和功能	345
11.3.1  I2S模塊的結構	345
11.3.2  支持的音頻標準	346
11.3.3  啟動說明	349
11.3.4  I2S時鐘生成器	350
11.3.5  I2S主模式	352
11.3.6  I2S從模式	353
11.3.7  I2S狀態位	354
11.3.8  I2S錯誤標誌	355
11.3.9  DMA功能	356
11.3.10  I2S中斷	356
11.4  設計實例:I2S模塊與音頻設備的交互設計	356
11.4.1  數字音頻接口	358
11.4.2  音頻數據格式	358
11.4.3  音頻模塊硬件電路	359
11.4.4  在STM32CubeMX中配置參數	360
11.4.5  在Keil ?Vision中修改設計代碼	362
11.4.6  設計處理和驗證	365
第12章  實時時鐘的原理和電子鐘實現	366
12.1  實時時鐘的原理及功能	366
12.1.1  RTC的功能和結構	366
12.1.2  RTC低功耗模式	377
12.1.3  RTC中斷	377
12.2  I2C總線的原理及功能	377
12.2.1  I2C模塊的結構	378
12.2.2  I2C可編程時序	381
12.2.3  I2C主設備時鐘	382
12.2.4  從設備尋址模式	383
12.2.5  從停止模式喚醒	384
12.2.6  數據傳輸的處理	385
12.2.7  從模式	386
12.2.8  對SMBus的支持	387
12.2.9  中斷和DMA	388
12.2.10  低功耗模式	389
12.3  OLED顯示模塊的原理	389
12.3.1  OLED的性能和參數	389
12.3.2  OLED模塊的電路	390
12.3.3  I2C總線寫數據	392
12.3.4  I2C的寫模式	392
12.3.5  I2C的數據位傳輸	393
12.3.6  圖形顯示數據RAM	394
12.3.7  存儲器尋址模式	395
12.3.8  OLED的初始化命令序列	396
12.4  電子鐘的應用設計	397
12.4.1  在STM32CubeMX中配置參數	397
12.4.2  在Keil ?Vision中添加設計代碼	401
12.4.3  設計下載和測試	414
第13章  直接存儲器訪問的原理和實現	416
13.1  DMA模塊的原理	416
13.1.1  STM32G071 MCU系統結構	416
13.1.2  DMA模塊的結構	417
13.1.3  DMA傳輸	417
13.1.4  DMA仲裁	418
13.1.5  DMA通道	418
13.1.6  DMA數據寬度、對齊和端	421
13.1.7  DMA中斷	422
13.2  DMA請求多路選擇器的原理	422
13.2.1  DMAMUX的結構	422
13.2.2  DMAMUX映射	424
13.2.3  DMAMUX通道	426
13.2.4  DMAMUX請求多路選擇器	426
13.2.5  同步模式和通道事件生成	426
13.2.6  DMAMUX請求生成器	428
13.2.7  DMAMUX中斷	429
13.3  設計實例:基於DMA的數據傳輸實現	429
13.3.1  在STM32CubeMX中配置參數	429
13.3.2  在Keil ?Vision中添加設計代碼	432
13.3.3  設計下載和調試	434
第14章  信號採集和處理的實現	435
14.1  ADC結構和功能	435
14.1.1  ADC內部結構	435
14.1.2  低功耗模式	435
14.1.3  高性能特性	438
14.1.4  ADC轉換速度	439
14.1.5  ADC時鐘的選擇	439
14.1.6  ADC輸入與ADC的連接關系	440
14.1.7  ADC轉換模式	440
14.1.8  模擬看門狗	441
14.1.9  數據傳輸和中斷	442
14.2  溫度傳感器和內部參考電壓	442
14.2.1  讀取溫度	443
14.2.2  使用內部參考電壓計算實際VREF+	444
14.3  電池電壓的監控	444
14.4  設計實例一:模擬信號的採集與顯示	444
14.4.1  在STM32CubeMX中配置參數	444
14.4.2  在Keil ?Vision中添加設計代碼	448
14.4.3  設計下載和調試	452
14.5  DAC結構和功能	453
14.5.1  DAC內部結構	453
14.5.2  DAC通道使能	456
14.5.3  DAC數據格式	456
14.5.4  DAC轉換	456
14.5.5  DAC電壓	457
14.5.6  DAC觸發選擇	457
14.5.7  DMA請求	457
14.5.8  噪聲生成	458
14.5.9  生成三角波	458
14.5.10  DAC通道模式	459
14.5.11  DAC通道緩沖區標定	461
14.5.12  雙DAC通道轉換模式(如果可用)	462
14.5.13  低功耗模式	466
14.6  基本定時器結構和功能	466
14.7  設計實例二:使用示波器上的X-Y模式顯示不同的圖形	467
14.7.1  設計目標和設計思路	467
14.7.2  在STM32CubeMX中配置參數	467
14.7.3  在Keil ?Vision中添加設計代碼	471
14.7.4  設計下載和測試	480
第15章  嵌入式操作系統原理及應用	483
15.1  操作系統的必要性	483
15.1.1  單任務程序	483
15.1.2  輪詢程序	483
15.2  操作系統基本知識	484
15.2.1  操作系統的作用	484
15.2.2  操作系統的功能	484
15.2.3  嵌入式操作系統	487
15.3  RT-Thread Nano架構及功能	489
15.4  RT-Thread Nano在Keil MDK的移植	490
15.4.1  安裝RT-Thread Nano	490
15.4.2  添加RT-Thread Nano	491
15.4.3  適配RT-Thread Nano	493
15.4.4  修改設計代碼	494
15.4.5  配置RT-Thread Nano	495
15.5  RT-Thread Nano內核分析與實現	497
15.5.1  線程及其管理	498
15.5.2  線程的創建及調度的實現	503
15.5.3  定時器的使用	509
15.5.4  互斥量的使用	511

 
     
     
     
    
 
     
     
     
    
 
    
 
     
     
     
     
     
    
 
     
     
     
     
     
     
     
    
 
     
     
     
     
    