图书目录

目录

第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节节首