第1章 STM32 MCU简介 1
1.1 STM32MCU结构 1
1.2 STM32MCU存储器映像 2
1.3 STM32MCU系统时钟树 4
1.3.1 时钟控制 5
1.3.2 时钟配置 7
1.3.3 APB2设备时钟使能 11
1.3.4 APB1设备时钟使能 12
1.3.5 备份域控制 13
1.3.6 控制状态 15
1.4 Cortex-M3简介 17
第2章 通用并行接口GPIO 21
2.1 GPIO结构及寄存器说明 21
2.2 GPIO库函数说明 23
2.3 GPIO设计实例 26
2.3.1 使用库函数软件设计 27
2.3.2 使用寄存器软件设计 31
2.4 GPIO设计实现 33
2.4.1 Keil的安装和使用 33
2.4.2 使用仿真器调试和运行目标程序 35
2.4.3 使用调试器调试和运行目标程序 42
2.5 LCD使用 45
第3章 通用同步/异步收发器接口USART 50
3.1 UART简介 50
3.2 USART结构及寄存器说明 51
3.3 USART库函数说明 54
3.4 USART设计实例 56
3.4.1 USART基本功能程序设计 57
3.4.2 与PC通信程序设计 59
3.4.3 用printf()实现通信程序设计 63
3.5 USART设计实现 63
3.5.1 使用仿真器调试和运行目标程序 65
3.5.2 使用调试器调试和运行目标程序 68
第4章 串行设备接口SPI 70
4.1 SPI结构及寄存器说明 70
4.2 SPI库函数说明 73
4.3 SPI设计实例 76
4.3.1 SPI基本功能程序设计 76
4.3.2 SPI环回程序设计 78
4.3.3 GPIO仿真SPI程序设计 79
4.4 SPI设计实现 80
第5章 内部集成电路总线接口I2C 84
5.1 I2C结构及寄存器说明 84
5.2 I2C库函数说明 88
5.3 I2C设计实例 92
5.3.1 I2CEEPROM库函数说明 93
5.3.2 I2CEEPROM库函数程序设计 95
5.3.3 GPIO仿真I2C库函数说明 97
5.3.4 GPIO仿真I2C库函数程序设计 100
5.4 I2C设计实现 102
5.4.1 I2C EEPROM库函数程序设计实现 102
5.4.2 GPIO仿真I2C库函数程序设计实现 104
第6章 定时器TIM 107
6.1 TIM结构及寄存器说明 107
6.2 TIM库函数说明 115
6.3 TIM设计实例 124
6.3.1 1s定时程序设计 124
6.3.2 矩形波输出程序设计 126
6.3.3 矩形波测量程序设计 129
6.4 实时钟RTC 132
6.4.1 RTC结构及寄存器说明 132
6.4.2 RTC库函数说明 134
6.4.3 RTC程序设计 136
第7章 模数转换器ADC 139
7.1 ADC结构及寄存器说明 139
7.2 ADC库函数说明 145
7.3 ADC设计实例 151
7.3.1 用ADC1规则通道实现外部输入模拟信号的模数转换 151
7.3.2 用ADC1注入通道实现内部温度传感器的温度测量 154
第8章 嵌套向量中断控制器NVIC 157
8.1 NVIC简介 157
8.2 EXTI中断 162
8.3 USART中断 167
8.4 TIM中断 169
8.5 ADC中断 171
第9章 直接存储器存取DMA 173
9.1 DMA简介 173
9.2 USART的DMA操作 177
9.3 ADC的DMA操作 179
第10章 竞赛扩展板的使用 182
10.1 数码管的使用 182
10.2 ADC按键的使用 183
10.3 湿度传感器DHT11的使用 186
10.4 温度传感器DS18B20的使用 188
10.5 加速度传感器LIS302DL的使用 194
附录A STM32库函数 197
附录B STM32引脚功能 212
附录C CT1 17E嵌入式竞赛训练板简介 224
附录D CT1 17E嵌入式竞赛扩展板简介 229
附录E ASCII码表 233
附录F C语言运算符 234
附录G 实验指导 235
实验1 GPIO应用 235
实验2 USART应用 236
实验3 SPI应用 236
实验4 I2C应用 237
实验5 TIM应用 238
实验6 ADC应用 239
实验7 NVIC应用 240
实验8 DMA应用 240
参考文献 241