Cortex-M3 嵌入式系統開發 — STM32 單片機體系結構、編程與項目實戰 (微課視頻版)

薑付鵬、劉通、王英合

  • 出版商: 清華大學
  • 出版日期: 2023-01-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • ISBN: 7302610339
  • ISBN-13: 9787302610335
  • 相關分類: 嵌入式系統STM32
  • 立即出貨

  • Cortex-M3 嵌入式系統開發 — STM32 單片機體系結構、編程與項目實戰 (微課視頻版)-preview-1
  • Cortex-M3 嵌入式系統開發 — STM32 單片機體系結構、編程與項目實戰 (微課視頻版)-preview-2
  • Cortex-M3 嵌入式系統開發 — STM32 單片機體系結構、編程與項目實戰 (微課視頻版)-preview-3
Cortex-M3 嵌入式系統開發 — STM32 單片機體系結構、編程與項目實戰 (微課視頻版)-preview-1

買這商品的人也買了...

商品描述

本書從單片機應用的角度,系統的介紹STM32F107原理以及開發方法,共包含十六個篇章。 第一、二章是基礎篇,第一章介紹CrotexM3內核概況以及指令集,以及ST公司的STM系列單片機選型方法和開發工具。第二章介紹STM32F107單片機的的基礎架構以及存儲組織、時鐘、電源和啟動配置。 第四章介紹STM32F107單片機的NVIC和系統時鐘定時器。 第三章、第五章一直到第十三章是STM32F107單片機的外設篇,系統介紹了單片機的定時器、通信接口、ADC/DAC、USB、以太網接口等外設接口的原理和編程方法。 第十四章到十六章是進階篇,針對單片機應用的常用軟件技術,介紹了嵌入式界面設計方法、RTOS的使用、以及物聯網網關的設計方法。

目錄大綱

 

目錄

 

 

 

第1篇入門篇

 

第1章ARM及CortexM3概述 

 

1.1ARM概述

 

1.1.1ARM公司

 

1.1.2RISC

 

1.1.3ARM微處理器

 

1.1.4ARM微處理器內核及其架構的發展簡史

 

1.2CortexM3內核

 

1.2.1Cortex內核的分類

 

1.2.2CM3內核的特點

 

1.2.3CM3內核的指令集

 

本章小結

 

第2篇準備篇

 

第2章天信通STM32F107開發板 

 

2.1STM32系列MCU

 

2.2STM32F107芯片

 

2.3STM32F107開發板資源

 

本章小結

 

第3章MDK開發環境

 

3.1STM32官方固件庫

 

3.1.1庫開發與寄存器開發

 

3.1.2CMSIS

 

3.1.3STM32官方固件庫包

 

3.2MDK5簡介

 

3.3MDK5的安裝

 

3.3.1MDK5的安裝步驟

 

3.3.2MDK5的註冊

 

3.4基於固件庫新建工程模板

 

3.5程序的下載和調試

 

3.5.1程序的下載

 

3.5.2程序的調試

 

本章小結

 

第4章STM32基礎知識簡介

 

4.1STM32的系統架構

 

4.2STM32的時鐘系統

 

本章小結

 

第3篇詳解篇

 

第5章GPIO埠及其應用

 

5.1GPIO埠概述

 

5.2GPIO埠的相關寄存器

 

5.2.1埠配置低寄存器

 

5.2.2埠配置高寄存器

 

5.2.3埠輸入數據寄存器

 

5.2.4埠輸出數據寄存器

 

5.2.5埠位設置/清除數據寄存器

 

5.2.6埠位清除數據寄存器

 

5.3GPIO埠的相關庫函數

 

5.3.1GPIO_Init()函數

 

5.3.2GPIO_SetBits()函數和GPIO_ResetBits()函數

 

5.3.3GPIO_Write()函數和GPIO_WriteBit()函數

 

5.3.4GPIO_ReadInputDataBit()函數、GPIO_ReadInputData()函數、

GPIO_ReadOutputDataBit()函數和

GPIO_ReadOutputData()函數

 

5.3.5GPIO_DeInit()函數

 

5.4GPIO埠的應用實例

 

5.4.1流水燈

 

5.4.2按鍵控制LED

 

本章小結

 

第6章寄存器的名稱和地址的映射關系及位帶操作

 

6.1寄存器的名稱和地址的映射關系

 

6.2位帶操作

 

6.2.1位帶操作概述

 

6.2.2位帶操作應用實例

 

本章小結

 

第7章NVIC與中斷管理

 

7.1CM3的異常及其優先級管理

 

7.2NVIC概述

 

7.3NVIC相關的寄存器

 

7.3.1中斷使能寄存器組和中斷失能寄存器組

 

7.3.2中斷掛起寄存器組和中斷解掛寄存器組

 

7.3.3中斷激活標志位寄存器組

 

7.3.4中斷優先級寄存器組

 

7.4NVIC相關的庫函數

 

7.4.1NVIC_PriorityGroupConfig()函數

 

7.4.2NVIC_Init()函數

 

本章小結

 

第8章EXTI控制器及其應用

 

8.1EXTI控制器概述

 

8.2EXTI相關的寄存器

 

8.2.1中斷屏蔽寄存器

 

8.2.2事件屏蔽寄存器

 

8.2.3上升沿觸發選擇寄存器

 

8.2.4下降沿觸發選擇寄存器

 

8.2.5軟件中斷事件寄存器

 

8.2.6掛起寄存器

 

8.3EXTI相關的庫函數

 

8.3.1GPIO_EXTILineConfig()函數

 

8.3.2EXTI_Init()函數

 

8.3.3EXTI的中斷處理函數

 

8.3.4EXTI_GetITStatus()函數和EXTI_ClearITPendingBit()函數

 

8.3.5EXTI_GetFlagStatus()函數和EXTI_ClearFlag()函數

 

8.4EXTI外部中斷的應用實例

 

本章小結

 

第9章SysTick定時器及其應用

 

9.1SysTick定時器概述

 

9.2SysTick定時器相關的寄存器

 

9.2.1SysTick控制及狀態寄存器

 

9.2.2SysTick重裝載數值寄存器

 

9.2.3SysTick當前數值寄存器

 

9.3SysTick定時器相關的庫函數

 

9.3.1SysTick_CLKSourceConfig()函數

 

9.3.2SysTick_Config()函數

 

9.4SysTick定時器的應用實例

 

9.4.1中斷方式實現定時

 

9.4.2查詢方式實現定時

 

本章小結

 

第10章USART及其應用

 

10.1串行通信基礎知識簡介

 

10.1.1異步通信和同步通信

 

10.1.2串行通信的數據傳輸方向

 

10.1.3串行通信的數據傳輸速率

 

10.1.4串行通信的錯誤校驗

 

10.2USART概述

 

10.3USART相關的寄存器

 

10.3.1狀態寄存器

 

10.3.2數據寄存器

 

10.3.3波特率寄存器

 

10.3.4控制寄存器1

 

10.4USART相關的庫函數

 

10.4.1USART_Init()函數

 

10.4.2USART_DeInit()函數

 

10.4.3USART_Cmd()函數

 

10.4.4USART_ITConfig()函數

 

10.4.5USART_SendData()函數

 

10.4.6USART_ReceiveData()函數

 

10.4.7USART_GetITStatus()函數和USART_GetFlagStatus()函數

 

10.4.8USART_ClearITPendingBit()函數和

USART_ClearFlag()函數

 

10.5埠引腳的復用功能

 

10.5.1埠引腳復用功能的概念

 

10.5.2調用庫函數實現埠引腳的復用功能

 

10.6USART的應用實例

 

本章小結

 

第11章獨立看門狗及其應用

 

11.1看門狗概述

 

11.2IWDG概述

 

11.3IWDG相關的寄存器

 

11.3.1鍵寄存器(IWDG_KR)

 

11.3.2預分頻寄存器(IWDG_PR)

 

11.3.3重裝載寄存器(IWDG_RLR)

 

11.4IWDG相關的庫函數

 

11.4.1IWDG_WriteAccessCmd()函數

 

11.4.2IWDG_SetPrescaler()函數

 

11.4.3IWDG_SetReload()函數

 

11.4.4IWDG_ReloadCounter()函數

 

11.4.5IWDG_Enable()函數

 

11.5IWDG的應用實例

 

本章小結

 

第12章窗口看門狗及其應用

 

12.1WWDG概述

 

12.2WWDG相關的寄存器

 

12.2.1控制寄存器(WWDG_CR)

 

12.2.2配置寄存器(WWDG_CFR)

 

12.2.3狀態寄存器(WWDG_SR)

 

12.3WWDG相關的庫函數

 

12.3.1WWDG_SetPrescaler()函數

 

12.3.2WWDG_SetWindowValue()函數

 

12.3.3WWDG_EnableIT()函數

 

12.3.4WWDG_SetCounter()函數

 

12.3.5WWDG_Enable()函數

 

12.3.6WWDG_GetFlagStatus()函數

 

12.3.7WWDG_ClearFlag()函數

 

12.4WWDG的應用實例

 

本章小結

 

第13章通用定時器及其應用1

 

13.1通用定時器概述

 

13.2中斷定時相關的寄存器

 

13.2.1計數器當前值寄存器

 

13.2.2預分頻器寄存器

 

13.2.3自動重裝載寄存器

 

13.2.4控制寄存器1

 

13.2.5DMA/中斷使能寄存器

 

13.2.6狀態寄存器

 

13.3中斷定時相關的庫函數

 

13.3.1TIM_TimeBaseInit()函數

 

13.3.2TIM_ITConfig()函數

 

13.3.3TIM_Cmd()函數

 

13.3.4TIM_GetITStatus()函數

 

13.3.5TIM_ClearITPendingBit()函數

 

13.4中斷定時的應用實例

 

本章小結

 

第14章通用定時器及其應用2

 

14.1通用定時器捕獲/比較通道的輸出

 

14.2通用定時器的PWM模式

 

14.3PWM脈寬調制相關的寄存器

 

14.3.1輸出模式下的捕獲/比較模式寄存器1/2

 

14.3.2輸出模式下的捕獲/比較使能寄存器

 

14.3.3輸出模式下的捕獲/比較寄存器

 

14.4PWM脈寬調制相關的庫函數

 

14.4.1TIM_OCxInit()函數

 

14.4.2TIM_SetComparex()函數

 

14.4.3TIM_OCxPreloadConfig()函數

 

14.5PWM脈寬調制的應用實例

 

本章小結

 

第15章通用定時器及其應用3

 

15.1通用定時器捕獲/比較通道的輸入

 

15.2通用定時器的輸入捕獲模式

 

15.3通用定時器輸入捕獲相關的寄存器

 

15.3.1輸入模式下的捕獲/比較模式寄存器

 

15.3.2輸入模式下的捕獲/比較使能寄存器

 

15.3.3輸入模式下的捕獲/比較寄存器

 

15.4通用定時器輸入捕獲相關的庫函數

 

15.4.1TIM_ICxInit()函數

 

15.4.2TIM_OCxPolarityConfig()函數

 

15.4.3TIM_SetCounter()函數

 

15.5輸入捕獲的應用實例

 

本章小結

 

第16章實時時鐘

 

16.1RTC概述

 

16.2RTC相關的寄存器

 

16.2.1RTC控制寄存器高位

 

16.2.2RTC控制寄存器低位

 

16.2.3RTC預分頻裝載寄存器

 

16.2.4RTC預分頻餘數寄存器

 

16.2.5RTC計數器寄存器

 

16.2.6RTC鬧鐘寄存器

 

16.3RTC應用相關的其他寄存器

 

16.3.1備份數據寄存器

 

16.3.2備份區域控制寄存器

 

16.3.3APB1外設使能寄存器

 

16.3.4電源控制寄存器

 

16.4RTC相關的庫函數

 

16.4.1RTC_WaitForLastTask()函數

 

16.4.2RTC_WaitForSynchro()函數

 

16.4.3RTC_EnterConfigMode()函數

 

16.4.4RTC_ExitConfigMode()函數

 

16.4.5RTC_GetCounter()函數

 

16.4.6RTC_SetCounter()函數

 

16.4.7RTC_SetPrescaler()函數

 

16.4.8RTC_SetAlarm()函數

 

16.4.9RTC_ITConfig()函數

 

16.4.10RTC_GetFlagStatus()函數和RTC_GetITStatus()函數

 

16.4.11RTC_ClearFlag()函數和RTC_ClearITPendingBit()函數

 

16.5RTC應用相關的其他庫函數

 

16.5.1RCC_RTCCLKConfig()函數

 

16.5.2RCC_RTCCLKCmd()函數

 

16.5.3PWR_BackupAccessCmd()函數

 

16.5.4RCC_LSEConfig()函數

 

16.5.5RCC_GetFlagStatus()函數

 

16.5.6BKP_ReadBackupRegister()函數

 

16.5.7BKP_WriteBackupRegister()函數

 

16.6RTC應用實例

 

本章小結

 

第17章電源控制

 

17.1電源管理

 

17.1.1獨立的A/D轉換器供電和參考電壓

 

17.1.2電池備份區域

 

17.1.3電壓調節器

 

17.2低功耗模式

 

17.2.1睡眠模式

 

17.2.2停止模式

 

17.2.3待機模式

 

17.2.4低功耗模式下的自動喚醒

 

17.3電源控制相關的寄存器

 

17.3.1電源控制寄存器

 

17.3.2電源控制/狀態寄存器

 

17.3.3系統控制寄存器

 

17.4電源控制相關的庫函數

 

17.4.1PWR_WakeUpPinCmd()函數

 

17.4.2PWR_EnterSTANDBYMode()函數

 

17.4.3PWR_EnterSTOPMode()函數

 

17.4.4PWR_GetFlagStatus()函數

 

17.4.5PWR_ClearFlag()函數

 

17.5電源控制的應用實例

 

本章小結

 

第18章ADC

 

18.1ADC概述

 

18.1.1ADC簡介

 

18.1.2ADC的主要特徵

 

18.1.3ADC的功能描述

 

18.2ADC相關的寄存器

 

18.2.1ADC狀態寄存器

 

18.2.2ADC控制寄存器1

 

18.2.3ADC控制寄存器2

 

18.2.4ADC採樣時間寄存器

 

18.2.5ADC規則序列寄存器

 

18.2.6ADC註入數據寄存器

 

18.2.7ADC規則數據寄存器

 

18.2.8時鐘配置寄存器

 

18.3ADC相關的庫函數

 

18.3.1ADC_DeInit()函數

 

18.3.2ADC_Init()函數

 

18.3.3ADC_Cmd()函數

 

18.3.4ADC_ITConfig()函數

 

18.3.5ADC_ResetCalibration()函數

 

18.3.6ADC_GetResetCalibrationStatus(ADC_TypeDef*ADCx)

函數

 

18.3.7ADC_StartCalibration(ADC_TypeDef*ADCx)函數

 

18.3.8ADC_GetCalibrationStatus(ADC_TypeDef*ADCx)函數

 

18.3.9ADC_SoftwareStartConvCmd()函數

 

18.3.10ADC_RegularChannelConfig()函數

 

18.3.11ADC_GetConversionValue()函數

 

18.3.12ADC_TempSensorVrefintCmd()函數

 

18.3.13ADC_GetFlagStatus()函數和ADC_GetITStatus()函數

 

18.3.14ADC_ClearFlag()函數和ADC_ClearITPendingBit()函數

 

18.4ADC的應用實例

 

18.4.1讀取外部電壓值

 

18.4.2獲取內部溫度值

 

本章小結

 

第19章DAC

 

19.1DAC概述

 

19.1.1DAC簡介

 

19.1.2DAC的主要特徵

 

19.2DAC的功能描述

 

19.2.1使能DAC通道和DAC緩存

 

19.2.2DAC的數據格式

 

19.2.3DAC的轉換

 

19.2.4DAC的輸出電壓

 

19.2.5DAC的觸發選擇

 

19.3DAC相關的寄存器

 

19.3.1DAC控制寄存器

 

19.3.2DAC軟件觸發寄存器

 

19.3.3DAC通道1的12位右對齊數據保持寄存器

 

19.3.4DAC通道1的12位左對齊數據保持寄存器

 

19.3.5DAC通道1的8位右對齊數據保持寄存器

 

19.3.6DAC通道1數據輸出寄存器

 

19.4DAC相關的庫函數

 

19.4.1DAC_DeInit()函數

 

19.4.2DAC_Init()函數

 

19.4.3DAC_Cmd()函數

 

19.4.4DAC_SetChannel1Data()函數和DAC_SetChannel2Data()

函數

 

19.4.5DAC_GetDataOutputValue()函數

 

19.4.6DAC_DMACmd()函數

 

19.4.7DAC_SoftwareTriggerCmd()函數

 

19.5DAC的應用實例

 

本章小結

 

參考文獻

 

 

 

 

微課視頻清單

 

 

 

 

視 頻 名 稱時長/min位置

 

1. ARM及CortexM3概述0:37:30第1章章首

2. 課程硬件開發平臺0:35:35第2章章首

3. 課程軟件開發環境10:51:57第3章章首

4. 課程軟件開發環境20:49:343.2節節首

5. 課程軟件開發環境30:43:053.5.1節節首

6. 課程軟件開發環境40:36:123.5.2節節首

7. STM32基礎知識簡介10:45:49第4章章首

8. STM32基礎知識簡介20:25:374.2節節首

9. GPIO埠及其應用10:39:02第5章章首

10. GPIO埠及其應用20:40:235.2節節首

11. GPIO埠及其應用30:48:285.3節節首

12. GPIO埠及其應用40:56:035.4.1節節首

13. GPIO埠及其應用50:45:215.4.2節節首

14. 寄存器的名稱和地址的映射關系及位帶操作10:35:36第6章章首

15. 寄存器的名稱和地址的映射關系及位帶操作20:50:166.2節節首

16. NVIC與中斷管理10:53:51第7章章首

17. NVIC與中斷管理20:51:367.3節節首

18. EXTI 控制器及其應用10:43:13第8章章首

19. EXTI 控制器及其應用20:50:328.3節節首

20. EXTI 控制器及其應用30:34:278.4節節首

21. SysTick定時器及其應用10:40:15第9章章首

22. SysTick定時器及其應用20:59:349.4節節首

23. USART及其應用10:52:01第10章章首

24. USART及其應用20:54:2210.2節節首

25. USART及其應用30:48:0410.4節節首

26. USART及其應用40:41:5610.6節節首

27. USART及其應用50:47:3610.6節節末

28. 獨立看門狗(IWDG)及其應用10:47:57第11章章首

29. 獨立看門狗(IWDG)及其應用20:35:4111.4節節首

30. 窗口看門狗(WWDG)及其應用10:38:09第12章章首

31. 窗口看門狗(WWDG)及其應用20:46:1612.2節節首

32. 通用定時器及其應用1_10:53:27第13章章首

33. 通用定時器及其應用1_20:44:4513.2節節首

34. 通用定時器及其應用1_30:31:3713.4節節首

35. 通用定時器及其應用2_10:45:40第14章章首

36. 通用定時器及其應用2_20:44:1114.2節節首

 

 

 

視 頻 名 稱時長/min位置

 

37. 通用定時器及其應用2_30:45:2214.3節節首

38. 通用定時器及其應用2_40:32:1614.4節節首

39. 通用定時器及其應用2_50:35:2914.5節節首

40. 通用定時器及其應用3_10:38:44第15章章首

41. 通用定時器及其應用3_20:43:4215.3節節首

42. 通用定時器及其應用3_30:42:2915.4節節首

43. 通用定時器及其應用3_40:40:5915.5節節首

44. 電源控制10:28:20第17章章首

45. 電源控制20:32:2017.2節節首

46. 電源控制30:44:0817.2.2節節首

47. 電源控制40:44:0617.3節節首

48. 電源控制50:36:0817.5節節首

49. ADC10:47:11第18章章首

50. ADC20:57:1318.1.3節節首

51. ADC30:48:5018.2節節首

52. ADC40:41:5618.3節節首

53. ADC50:53:1318.4.1節節首

54. ADC60:38:4318.4.2節節首

55. DAC10:46:57第19章章首

56. DAC20:40:4519.3節節首

57. DAC30:36:2819.5節節首