21天学通ARM嵌入式开发

生活百科 2023-01-26 10:45生活百科www.aizhengw.cn

21天学通ARM嵌入式开发

《21天学通ARM嵌入式开发》是2011年电子工业出版社出版的图书,作者是薛园园。本书主要讲述了ARM嵌入式系统的基本结构和开发和ARM处理器的编程。

基本介绍

  • 书名21天学通ARM嵌入式开发
  • 作者薛园园
  • ISBN9787121141621
  • 页数420页
  • 出版社电子工业出版社
  • 出版时间第1版 (2011年9月1日)
  • 丛书名: 21天学编程系列
  • 其他: 420页
  • ISBN: 9787121141621

内容简介

本书系统地介绍了ARM嵌入式系统的基本结构、开发和ARM处理器的编程,并结合流行的嵌入式系统介绍了如何移植。本书言简意赅、通俗易懂,知识点覆盖全面,详细讲述了最新的ARM Cortex-M3核心及STM32处理器编程,使读者能够更好地掌握ARM处理器及相应的嵌入式系统设计。
本书分为四篇,共23章,全面详细地讲述了ARM处理器的原理、程式设计方法、ARM处理器编程指南及嵌入式系统移植。介绍了ARM处理器的构架及如何搭建一个ARM嵌入式开发平台,接着介绍了ARM Cortex-M3的指令集,基于Cortex-M3的STM32系列晶片及一些典型的嵌入式作业系统。然后结合STM32的各个功能部件详细讲解了ARM处理器的硬体编程方法。本书还介绍了基于ARM Cortex-M3的STM32晶片如何移植流行的嵌入式作业系统。
本书附赠DVD光碟1张,内容包括超大容量手把手教学视频、电子教案(PPT)、编程参考宝典电子书、原始码及各章习题答案。

目录

目 录
第一篇 走进嵌入式系统开发
第1章 嵌入式系统开发概述
( 教学视频44分钟) 25
1.1 何为嵌入式系统 25
1.1.1 嵌入式系统的概念 25
1.1.2 嵌入式系统的基本结构 26
1.1.3 嵌入式处理器 26
1.2 嵌入式系统的特点及发展趋势 27
1.3 嵌入式系统的开发过程 28
1.3.1 晶片选择 28
1.3.2 配置硬体平台 28
1.3.3 BootLoader移植 28
1.3.4 作业系统裁减 29
1.3.5 系统移植 29
1.3.6 应用程式开发 29
1.4 如何成为嵌入式开发人员 29
1.5 小结 30
1.6 习题 30
第2章 嵌入式作业系统简介
( 教学视频37分钟) 31
2.1 嵌入式作业系统概述 31
2.1.1 嵌入式作业系统的发展历史 31
2.1.2 嵌入式作业系统的分类 31
2.1.3 嵌入式作业系统的特点 32
2.2 主流嵌入式作业系统简介 32
2.2.1 VxWorks 32
2.2.2 pSOS 33
2.2.3 Palm OS 33
2.2.4 QNX 34
2.2.5 OS-9 34
2.2.6 LynxOS 34
2.2.7 Windows CE 34
2.2.8 μC/OS-II 35
2.2.9 嵌入式Linux 36
2.2.10 FreeRTOS 36
2.3 小结 36
2.4 习题 36
第3章 ARM处理器构架
( 教学视频53分钟) 38
3.1 ARM体系结构概述 38
3.1.1 ARM简介 38
3.1.2 CISC的体系结构 39
3.1.3 RISC的体系结构 39
3.1.4 ARM微处理器的套用领域 39
3.1.5 ARM体系结构的特点 40
3.2 ARM处理器系列 40
3.2.1 ARM7微处理器 40
3.2.2 ARM9微处理器 41
3.2.3 ARM9E微处理器 41
3.2.4 ARM10E微处理器 42
3.2.5 ARM11微处理器 42
3.2.6 SecurCore微处理器 42
3.2.7 StrongARM微处理器 42
3.2.8 Xscale微处理器 43
3.2.9 Cortex-M3微处理器 43
3.2.10 基于ARM核的晶片选择 43
3.3 ARM处理器结构 44
3.3.1 ARM的系统构架 44
3.3.2 ARM的流水线结构 44
3.3.3 ARM的存储器结构 45
3.4 ARM编程模型 45
3.4.1 工作模式和工作状态 46
3.4.2 特权访问和用户访问 46
3.4.3 数据类型 46
3.4.4 存储器格式 46
3.5 ARM开发调试工具综述 47
3.6 小结 47
3.7 习题 47
第4章 搭建嵌入式开发平台
( 教学视频39分钟) 49
4.1 基于ARM的RealView MDK开发
环境 49
4.1.1 RealView MDK简介 49
4.1.2 RealView MDK系统安装需求 49
4.1.3 RealView MDK的安装 50
4.1.4 RealView MDK集成开发
环境总览 51
4.1.5 RealView MDK的选单栏 51
4.1.6 RealView MDK的工具列 55
4.1.7 RealView MDK的快捷键 58
4.2 基于ARM Cortex-M3的STM32选型表 58
4.3 基于ARM Cortex-M3的STM32
最小开发系统 59
4.4 程式下载方式 60
4.5 小结 61
4.6 习题 61
第二篇 ARM嵌入式系统开发基础
第5章 ARM CORTEX-M3指令集
( 教学视频30分钟) 62
5.1 数据传送指令 62
5.1.1 暂存器间数据传送指令 62
5.1.2 存储器数据传送指令 62
5.1.3 索引数据传送指令 63
5.2 数据处理指令 64
5.2.1 算术四则运算指令 64
5.2.2 逻辑及移位操作指令 65
5.2.3 数据序转及位操作指令 66
5.3 子程式呼叫及转移指令 66
5.4 隔离指令 67
5.5 不支持的指令 67
5.6 小结 68
5.7 习题 68
第6章 基于ARM CORTEX-M3的
STM32在套用编程
( 教学视频31分钟) 70
6.1 在套用编程简介 70
6.2 STM32的启动配置 70
6.3 STM32的在套用编程 71
6.3.1 电路原理图 71
6.3.2 BootLoader固件下载步骤 72
6.4 小结 74
6.5 习题 75
第7章 嵌入式实时作业系统FREERTOS
( 教学视频42分钟) 76
7.1 嵌入式实时作业系统FreeRTOS简介 76
7.2 嵌入式作业系统基本概念 76
7.2.1 多任务 77
7.2.2 调度 77
7.2.3 上下文切换 78
7.2.4 实时套用和调度 78
7.3 FreeRTOS的API模组 78
7.3.1 定製 78
7.3.2 任务创建和删除 80
7.3.3 任务控制 81
7.3.4 核心控制 82
7.4 小结 83
7.5 习题 83
第8章 嵌入式系统UC/OS-Ⅱ
( 教学视频39分钟) 85
8.1 UC/OS-Ⅱ嵌入式系统简介 85
8.2 UC/OS-Ⅱ任务管理 85
8.2.1 建立任务OSTaskCreate 86
8.2.2 建立任务OSTaskCreate Ext 86
8.2.3 任务堆叠 88
8.2.4 堆叠检验OSTaskStkChk 88
8.2.5 删除任务OSTaskDel 89
8.2.6 请求删除任务OSTaskDelReq 90
8.2.7 改变任务的优先权OSTask
ChangePrio 91
8.2.8 挂起任务OSTaskSuspend 92
8.2.9 恢复任务OSTaskResume 93
8.2.10 获得有关任务的信息OSTaskQuery 94
8.3 任务之间的通信与同步 95
8.3.1 信号量 95
8.3.2 信箱 95
8.3.3 讯息伫列 95
8.4 小结 96
8.5 习题 96
第三篇 深入ARM嵌入式控制器
第9章 通用I/O接口
( 教学视频48分钟) 98
9.1 通用I/O接口的结构 98
9.1.1 GPIO的基本结构 98
9.1.2 GPIO的功能 99
9.1.3 GPIO的功能配置 100
9.1.4 复用功能与重映射 101
9.2 通用I/O接口的编程方法 104
9.2.1 GPIO暂存器结构 105
9.2.2 GPIO暂存器复位函式
GPIO_DeInit 105
9.2.3 复用功能暂存器复位函式
GPIO_AFIODeInit 106
9.2.4 参数初始化函式GPIO_Init 106
9.2.5 复位GPIO_InitStruct函式
GPIO_StructInit 108
9.2.6 读输入引脚函式
GPIO_ReadInputDataBit 108
9.2.7 读输入连线埠函式
GPIO_ReadInputData 108
9.2.8 读输出引脚函式
GPIO_ReadOutputDataBit 109
9.2.9 读输出连线埠函式
GPIO_ReadOutputData 109
9.2.10 置位引脚函式GPIO_SetBits 109
9.2.11 清除引脚位函式GPIO_ResetBits 109
9.2.12 置位或清除引脚函式
GPIO_WriteBit 110
9.2.13 写连线埠函式GPIO_Write 110
9.2.14 引脚配置锁定函式
GPIO_PinLockConfig 110
9.2.15 选择事件输出引脚函式
GPIO_EventOutputConfig 111
9.2.16 使能事件输出函式
GPIO_EventOutputCmd 111
9.2.17 改变引脚映射函式
GPIO_PinRemapConfig 111
9.2.18 选择EXTI线函式
GPIO_EXTILineConfig 112
9.3 综合练习 113
9.4 小结 113
9.5 习题 114
第10章 FLASH
( 教学视频24分钟) 115
10.1 Flash快闪记忆体的结构 115
10.2 Flash快闪记忆体的基本特性 116
10.2.1 Flash快闪记忆体读取 116
10.2.2 Flash快闪记忆体编程和擦除 116
10.3 Flash的编程方法 116
10.3.1 Flash暂存器结构 117
10.3.2 设定代码延时值函式
Flash_SetLatency 118
10.3.3 使能或禁用半周期访问函式
Flash_HalfCycleAccessCmd 118
10.3.4 使能或禁用预取缓冲区函式
Flash_PrefetchBufferCmd 118
10.3.5 解锁擦除控制器函式Flash_Unlock 118
10.3.6 锁定擦除控制器函式Flash_Lock 119
10.3.7 擦除页函式Flash_ErasePage 119
10.3.8 擦除全部页函式
Flash_EraseAllPages 119
10.3.9 擦除选项位元组函式
Flash_EraseOptionBytes 120
10.3.10 字写入函式Flash_ProgramWord 120
10.3.11 半字写入函式
Flash_ProgramHalfWord 121
10.3.12 写选项位元组函式Flash_
ProgramOptionByteData 121
10.3.13 页防写函式Flash_
EnableWriteProtection 122
10.3.14 使能或禁用读保护函式
Flash_ReadOutProtection 123
10.3.15 写选项位元组函式Flash_
UserOptionByteConfig 124
10.3.16 获取选项位元组函式Flash_
GetUserOptionByte 125
10.3.17 获取防写选项位元组函式Flash_
GetWriteProtectionOptionByte 125
10.3.18 获取读保护状态函式Flash_Get
ReadOutProtectionStatus 125
10.3.19 获取预取缓冲区状态函式
Flash_GetPrefectchBufferStatus 125
10.3.20 使能或禁用中断函式
Flash_ITConfig 126
10.3.21 获取标誌位状态函式
Flash_GetFlagStatus 126
10.3.22 清除挂起标誌函式
Flash_ClearFlag 127
10.3.23 获取Flash状态函式
Flash_GetStatus 127
10.3.24 等待操作结束函式Flash_
WaitForLastOperation 127
10.4 综合练习 128
10.5 小结 130
10.6 习题 130
第11章 ADC系统
( 教学视频52分钟) 132
11.1 ADC系统概述 132
11.2 ADC系统功能特性 133
11.2.1 ADC开关控制 133
11.2.2 ADC时钟 133
11.2.3 ADC通道选择 133
11.2.4 ADC的转换模式 133
11.2.5 中断 134
11.2.6 模拟看门狗 134
11.2.7 ADC的扫描模式 134
11.2.8 ADC的注入通道管理 134
11.2.9 间断模式 135
11.2.10 ADC的校準模式 135
11.2.11 ADC的数据对齐 136
11.2.12 可程式的通道採样时间 136
11.2.13 外部触发转换 136
11.2.14 DMA请求 137
11.2.15 双ADC模式 137
11.2.16 温度感测器 138
11.3 ADC系统的编程方法 139
11.3.1 ADC暂存器结构 140
11.3.2 ADC暂存器复位函式ADC_
DeInit 141
11.3.3 参数初始化函式ADC_Init 141
11.3.4 复位ADC_InitStruct函式
ADC_StructInit 143
11.3.5 使能或禁用ADC模组函式
ADC_Cmd 143
11.3.6 使能或禁用DMA请求函式
ADC_DMACmd 143
11.3.7 使能或禁用ADC中断函式
ADC_ITConfig 144
11.3.8 复位ADC校準暂存器函式
ADC_ResetCalibration 144
11.3.9 获取复位校準暂存器状态函式ADC_ GetResetCalibrationStatus 144
11.3.10 开始ADC校準函式
ADC_StartCalibration 145
11.3.11 获取ADC校準状态
ADC_GetCalibrationStatus 145
11.3.12 使能或禁用软体转换函式ADC_
SoftwareStartConvCmd 145
11.3.13 获取软体开始转换状态函式ADC_
GetSoftwareStartConvStatus 146
11.3.14 配置常规组非连续模式函式ADC_
DiscModeChannelCountConfig 146
11.3.15 使能或禁用常规组非连续模式
函式ADC_DiscModeCmd 146
11.3.16 配置ADC常规信道函式ADC_
RegularChannelConfig 147
11.3.17 使能或禁用外部触发函式
ADC_ExternalTrigConvCmd 148
11.3.18 获取转换结果函式ADC_
GetConversionValue 148
11.3.19 获取双重转换结果函式ADC_ GetDualModeConversionValue 148
11.3.20 使能或禁用自动注入组转换函式ADC_AutoInjectedConvCmd 149
11.3.21 使能或禁用非连续模式函式
ADC_InjectedDiscModeCmd 149
11.3.22 配置外部触发器函式ADC_
ExternalTrigInjectedConvConfig 149
11.3.23 使能或禁用注入信道转换
函式 ADC_ExternalTrig
InjectedConvCmd 150
11.3.24 使能或禁用开始注入信道
转换函式 ADC_Software
StartInjectedConvCmd 150
11.3.25 获取启动转换注入状态
函式 ADC_GetSoftware
StartInjectedConvStatus 151
11.3.26 配置ADC注入信道函式
ADC_InjectedChannelConfig 151
11.3.27 配置注入信道音序器长度
函式ADC_Injected
SequencerLengthConfig 152
11.3.28 设定注入信道转换值位移函式
ADC_SetInjectedOffset 152
11.3.29 获取注入信道转换结果
函式ADC_GetInjected
ConversionValue 153
11.3.30 使能或禁用模拟看门狗函式
ADC_AnalogWatchdogCmd 153
11.3.31 配置模拟看门狗域值函式 ADC_AnalogWatchdog
ThresholdsConfig 154
11.3.32 配置模拟看门狗保护函式 ADC_AnalogWatchdog
SingleChannelConfig 154
11.3.33 使能或禁用温度感测函式
ADC_TempSensorVrefintCmd 154
11.3.34 获取ADC标誌函式
ADC_GetFlagStatus 155
11.3.35 清除挂起标誌函式
ADC_ClearFlag 155
11.3.36 获取中断函式ADC_GetITStatus 155
11.3.37 清除中断挂起位函式
ADC_ClearITPendingBit 156
11.4 综合练习 156
11.5 小结 157
11.6 习题 157
第12章 中断系统
( 教学视频32分钟) 159
12.1 嵌套向量中断控制器(NVIC) 159
12.2 NVIC的编程方法 161
12.2.1 NVIC暂存器结构 162
12.2.2 复位NVIC外设函式
NVIC_DeInit 163
12.2.3 复位SCB外设函式NVIC_
SCBDeInit 163
12.2.4 配置优先权组函式NVIC_ PriorityGroupConfig 163
12.2.5 初始化NVIC外设函式
NVIC_Init 163
12.2.6 复位NVIC_InitStruct函式
NVIC_StructInit 164
12.2.7 使能PRIMASK优先权函式
NVIC_SETPRIMASK 165
12.2.8 用PRIASK优先权函式
NVIC_RESETPRIMASK 165
12.2.9 使能FAULTMASK优先权函式
NVIC_SETFA- ULTMASK 165
12.2.10 禁用FAULTMASK优先权函式
NVIC_RESET- FAULTMASK 165
12.2.11 配置执行优先权函式NVIC_
BASEPRICONFIG 165
12.2.12 获取BASEPRI掩码值函式
NVIC_GetBASEPRI 166
12.2.13 获取挂起服务的IRQ通道
标识符函式NVIC_GetCurrent
PendingIRQChannel 166
12.2.14 获取IRQ通道挂起位函式 NVIC_
GetIRQChannelPendingBitStatus 166
12.2.15 设定中断挂起位函式NVIC_
GetIRQChannelPendingBit 166
12.2.16 清除中断挂起位函式NVIC_
ClearIRQChannelPendingBit 167
12.2.17 返回活动句柄函式NVIC_
GetCurrentActiveHandle 167
12.2.18 获取IRQ通道活动位函式 NVIC_
GetIRQChannelActiveBitStatus 167
12.2.19 获取ID号函式
NVIC_GetCPUID 167
12.2.20 设定向量表和偏移量函式
NVIC_SetVectorTable 168
12.2.21 系统复位函式NVIC_
GenerateSystemReset 168
12.2.22 核复位函式
NVIC_GenerateCoreReset 168
12.2.23 低功耗模式条件函式
NVIC_SystemLPConfig 168
12.2.24 使能或禁用系统句柄函式
NVIC_SystemHandlerConfig 169
12.2.25 配置系统句柄优先权函式NVIC_
SystemHandlerPriorityConfig 169
12.2.26 获取系统句柄挂起位函式
NVIC_GetSystemHandler
PendingBitStatus 170
12.2.27 设定系统句柄挂起位函式NVIC_ S
etSystemHandlerPendingBit 170
12.2.28 清除系统句柄挂起位函式NVIC_
ClearSystemHandlerPendingBit 171
12.2.29 获取系统句柄活动位函式
NVIC_GetSystemHandler
ActiveBitStatus 171
12.2.30 获取系统故障句柄源函式NVIC_
GetFaultHandlerSources 172
12.2.31 获取故障句柄位置函式
NVIC_GetFaultAddress 172
12.3 外部中断/事件控制器(EXTI) 173
12.3.1 EXTI主要特性 173
12.3.2 EXTI功能说明 173
12.4 EXTI的编程方法 174
12.4.1 EXTI暂存器结构 174
12.4.2 复位EXTI外设函式
EXTI_DeInit 175
12.4.3 初始化EXTI外设函式
EXTI_Init 175
12.4.4 复位EXTI_InitStruct函式
EXTI_StructInit 176
12.4.5 软中断函式
EXTI_GenerateSWInterrupt 176
12.4.6 获取标誌状态函式
EXTI_GetFlagStatus 176
12.4.7 清除挂起标誌函式
EXTI_ClearFlag 176
12.4.8 获取EXTI置位函式
EXTI_GetITStatus 177
12.4.9 清除挂起位函式
EXTI_ClearITPendingBit 177
12.5 综合练习 177
12.6 小结 181
12.7 习题 181
第13章 异步串列通信接口
( 教学视频59分钟) 184
13.1 USART结构 184
13.1.1 USART特徵描述 184
13.1.2 USART传送器 184
13.1.3 USART接收器 185
13.1.4 LIN模式 185
13.1.5 USART同步模式 186
13.1.6 USART单线半双工通信 186
13.1.7 USART的智慧卡功能 186
13.1.8 USART的IrDA模式 186
13.1.9 USART的DMA通信 187
13.1.10 USART的硬体流控制 188
13.1.11 USART的中断请求 188
13.2 USART编程方法 188
13.2.1 USART暂存器结构 189
13.2.2 USART暂存器复位函式
USART_DeInit 190
13.2.3 参数初始化函式
USART_Init 190
13.2.4 复位USART_InitStruct
函式USART_StrucInit 192
13.2.5 使能或禁用USART函式
USART_Cmd 192
13.2.6 使能或禁用中断函式
USART_ITConfig 193
13.2.7 使能或禁用DMA函式
USART_DMACmd 193
13.2.8 设定节点地址函式
USART_SetAddress 194
13.2.9 选择唤醒方式函式
USART_WakeUpConfig 194
13.2.10 USART模式函式USART_
ReceiverWakeUpCmd 194
13.2.11 LIN间隔检波长度函式USART_
LINBreakDetectionConfig 195
13.2.12 使能或者禁用LIN模式
函式USART_LINCmd 195
13.2.13 传送数据函式USART_
SendData 195
13.2.14 接收数据函式USART_
ReceiveData 196
13.2.15 传输间断字元函式
USART_SendBreak 196
13.2.16 设定预警时间函式
USART_SetGuardTime 196
13.2.17 设定时钟预分频器函式
USART_SetPrescaler 196
13.2.18 使能或者禁用智慧卡模式函式
USART_SmartCardCmd 197
13.2.19 使能或禁用NACK函式
USART_SmartCardNackCmd 197
13.2.20 使能或者禁用半双工模式函式
USART_HalfDuplexCmd 197
13.2.21 配置IrDA模式函式USART_ IrDAConfig 198
13.2.22 使能或者禁用IrDA模式
函式USART_IrDACmd 198
13.2.23 获取标誌是否置位函式
USART_GetFlagStatus 198
13.2.24 清除未决标誌函式
USART_ClearFlag 199
13.2.25 获取中断状态函式
USART_GetITStatus 199
13.2.26 清除中断未决位函式USART_
ClearITPendingBit 200
13.3 CAN结构 200
13.3.1 初始化模式 201
13.3.2 正常模式 201
13.3.3 睡眠模式 201
13.3.4 测试模式 202
13.3.5 静默模式 202
13.3.6 环回模式 202
13.3.7 环回静默模式 202
13.4 CAN编程方法 202
13.4.1 CAN暂存器结构 203
13.4.2 CAN暂存器复位函式
CAN_DeInit 204
13.4.3 参数初始化函式CAN_Init 204
13.4.4 过滤参数初始化函式
CAN_FilterInit 207
13.4.5 复位CAN_InitStruct函式
CAN_StructInit 208
13.4.6 使能或禁用CAN中断函式
CAN_ITConfig 209
13.4.7 初始化报文传送函式
CAN_Transmit 209
13.4.8 检查报文传送函式
CAN_TransmitStatus 211
13.4.9 取消传送函式CAN_
CancelTransmit 211
13.4.10 释放FIFO函式CAN_
FIFORelease 212
13.4.11 获取挂起报文数量函式
CAN_MessagePending 212
13.4.12 报文接收函式CAN_Receive 212
13.4.13 低功耗模式函式CAN_Sleep 213
13.4.14 唤醒CAN模组函式
CAN_WakeUp 214
13.4.15 获取CAN标誌函式
CAN_GetFlagStatus 214
13.4.16 清除挂起标誌CAN_ClearFlag 214
13.4.17 获取中断状态函式
CAN_GetITStatus 215
13.4.18 清除中断挂起位函式
CAN_ClearITPendingBit 216
13.5 综合练习 217
13.6 小结 218
13.7 习题 219
第14章 同步串列通信接口
( 教学视频52分钟) 221
14.1 SPI结构 221
14.1.1 SPI从模式工作原理 222
14.1.2 SPI主模式工作原理 222
14.1.3 SPI通信的CRC 223
14.1.4 SPI的DMA通信 223
14.1.5 SPI的中断请求 223
14.2 SPI编程方法 224
14.2.1 SPI暂存器结构 224
14.2.2 复位SPI外设暂存器函式
SPI_DeInit 225
14.2.3 初始化外设SPIx暂存器
函式SPI_Init 225
14.2.4 设定SPI_InitStruct结构
成员函式SPI_StructInit 226
14.2.5 使能或者禁用SPI外设
函式SPI_Cmd 226
14.2.6 使能或者禁用SPI中断函式
SPI_ITConfig 226
14.2.7 使能或者禁用SPI的DMA
请求函式SPI_DMACmd 227
14.2.8 传送数据函式SPI_SendData 227
14.2.9 接收数据函式SPI_Receive
Data 227
14.2.10 配置NSS引脚函式SPI_
NSSInternalSoftwareConfig 227
14.2.11 使能或者禁用SPI SS输出
函式SPI_SSOutputCmd 228
14.2.12 设定SPI数据大小函式
SPI_DataSizeConfig 228
14.2.13 传送CRC值函式
SPI_TransmitCRC 228
14.2.14 使能或者禁用CRC值计算
函式SPI_CalculateCRC 228
14.2.15 获取CRC暂存器值函式
SPI_GetCRC 229
14.2.16 获取CRC多项式暂存器值函式
SPI_GetCRCPolynomial 229
14.2.17 双向模式下数据方向函式SPI_
BiDirectionalLineConfig 229
14.2.18 获取SPI标誌位函式
SPI_GetFlagStatus 230
14.2.19 清除挂起标誌位函式
SPI_ClearFlag 230
14.2.20 获取SPI中断函式
SPI_GetITStatus 230
14.2.21 清除中断挂起位函式
SPI_ClearITPendingBit 231
14.3 I2C结构 231
14.3.1 I2C从模式工作原理 232
14.3.2 I2C主模式工作原理 233
14.3.3 SMBus功能 233
14.3.4 I2C的DMA功能 233
14.3.5 I2C的中断请求 234
14.4 I2C编程方法 235
14.4.1 I2C暂存器结构 236
14.4.2 复位I2C外设暂存器函式
I2C_DeInit 236
14.4.3 初始化I2C外设函式I2C_Init 237
14.4.4 复位I2C_InitStruct结构
函式I2C_StructInit 238
14.4.5 使能或者禁用I2C外设
函式I2C_Cmd 238
14.4.6 使能或者禁用DMA请求
函式I2C_DMACmd 238
14.4.7 标示DMA传输函式
I2C_DMALastTransferCmd 239
14.4.8 产生起始信号函式
I2C_GenerateSTART 239
14.4.9 产生停止信号函式
I2C_GenerateSTOP 239
14.4.10 使能或者禁用应答函式
I2C_AcknowledgeConfig 240
14.4.11 配置I2C首地址2函式
I2C_OwnAddress2Config 240
14.4.12 使能或者禁用双重地址模式
函式I2C_DualAddressCmd 240
14.4.13 使能或者禁用通用调用特性
函式I2C_GeneralCallCmd 241
14.4.14 使能或者禁用I2C中断
函式I2C_ITConfig 241
14.4.15 传送数据函式I2C_SendData 241
14.4.16 接收数据函式
I2C_ReceiveData 242
14.4.17 传送地址位元组函式
I2C_Send7bitAddress 242
14.4.18 读取I2C暂存器函式
I2C_ReadRegister 242
14.4.19 使能或禁用软体复位函式
I2C_SoftwareResetCmd 242
14.4.20 配置驱动SMBAlert引脚函式
I2C_SMBusAlertConfig 243
14.4.21 使能或者禁用PEC传输
函式I2C_TransmitPEC 243
14.4.22 选择PEC位置函式
I2C_PECPositionConfig 243
14.4.23 使能或禁用PEC计算值
函式I2C_CalculatePEC 244
14.4.24 获取PEC值函式
I2C_GetPEC 244
14.4.25 使能或者禁用I2C ARP
函式I2C_ARPCmd 244
14.4.26 使能或禁用I2C时钟伸展函式
I2C_StretchClockCmd 245
14.4.27 配置占空比函式I2C_FastMode
DutyCycleConfig 245
14.4.28 获取最近的I2C事件
函式I2C_GetLastEvent 245
14.4.29 检查I2C事件函式
I2C_CheckEvent 246
14.4.30 获取I2C标誌位函式
I2C_GetFlagStatus 246
14.4.31 清除挂起标誌函式
I2C_ClearFlag 246
14.4.32 获取I2C中断函式
I2C_GetITStatus 247
14.4.33 清除中断挂起位函式
I2C_ClearITPendingBit 247
14.5 综合练习 248
14.6 小结 250
14.7 习题 251
第15章 通用定时器系统
( 教学视频39分钟) 253
15.1 系统计时器(SysTick)及其
编程方法 253
15.1.1 SysTick暂存器结构 253
15.1.2 配置SysTick时钟源函式
SysTick_CLKSourceConfig 253
15.1.3 设定SysTick重载值函式
SysTick_Setreload 254
15.1.4 使能或禁用SysTick计数器
函式SysTick_CounterCmd 254
15.1.5 使能或者取消SysTick中断
函式SysTick_ITConfig 254
15.1.6 获取SysTick计数器值函式
SysTick_GetCounter 255
15.1.7 获取SysTick标誌位函式
SysTick_GetFlagStatus 255
15.2 通用定时器(TIM)结构 255
15.2.1 时基单元 256
15.2.2 计数器的模式 256
15.2.3 通用定时器的特殊工作
模式 257
15.3 通用定时器(TIM)的编程方法 258
15.3.1 TIM暂存器结构 260
15.3.2 复位TIM外设暂存器函式
TIM_DeInit 261
15.3.3 初始化TIMx时间基单元
函式TIM_TimeBaseInit 261
15.3.4 初始化TIMx外设函式
TIM_OCInit函式 261
15.3.5 初始化TIMx外设函式
TIM_ICInit 263
15.3.6 初始化TIM_TimeBaseInitStruct
结构函式 TIM_Time
BaseStructInit 263
15.3.7 初始化TIM_OCInitStruct结构
函式TIM_OCStructInit 264
15.3.8 初始化TIM_ICInitStruct结构
函式TIM_ICStructInit 264
15.3.9 使能或者禁用TIM外设函式
TIM_Cmd 264
15.3.10 使能或者禁用TIM中断
函式TIM_ITConfig 265
15.3.11 配置DMA接口函式
TIM_DMAConfig 265
15.3.12 使能或者禁用DMA请求
函式TIM_DMACmd 265
15.3.13 配置TIMx内部时钟函式
TIM_InternalClockConfig 266
15.3.14 配置TIMx内部触发器为
外部时钟函式 TIM_ITRx
ExternalClockConfig 266
15.3.15 配置TIMx触发器为外部
时钟函式TIM_TixExternal
Config 266
15.3.16 配置TIMx外部时钟模型1函式
TIM_ETRClockMode1Config 266
15.3.17 配置TIMx外部时钟模型2函式
TIM_ETRClockMode2Config 267
15.3.18 配置TIMx外部触发函式TIM_ETRConfig 267
15.3.19 选择TIMx输入触发源函式
TIM_SelectInputTrigger 267
15.3.20 设定TIMx预分频函式
TIM_PrescalerConfig 268
15.3.21 设定TIMx计数器模式函式
TIM_CounterModeConfig 268
15.3.22 设定TIMx输出1函式
TIM_ForcedOC1Config 268
15.3.23 设定TIMx输出2函式
TIM_ForcedOC2Config 269
15.3.24 设定TIMx输出3函式
TIM_ForcedOC3Config 269
15.3.25 设定TIMx输出4函式
TIM_ForcedOC4Config 269
15.3.26 使能或禁用ARR上的
预装载暂存器函式
TIM_ARRPreloadConfig 270
15.3.27 选择外设捕获比较DMA
源函式TIM_SelectCCDMA 270
15.3.28 使能或禁用CCR1上的
预装载暂存器函式
TIM_OC1PreloadConfig 270
15.3.29 使能或禁用CCR2上的
预装载暂存器函式
TIM_OC2PreloadConfig 271
15.3.30 使能或禁用CCR3上的
预装载暂存器函式
TIM_OC3PreloadConfig 271
15.3.31 使能或禁用CCR4上的
预装载暂存器函式
TIM_OC4PreloadConfig 271
15.3.32 设定捕获比较1快速特徵
函式TIM_OC1FastConfig 272
15.3.33 设定捕获比较2快速特徵
函式TIM_OC2FastConfig 272
15.3.34 设定捕获比较3快速特徵
函式TIM_OC3FastConfig 272
15.3.35 设定捕获比较4快速特徵
函式TIM_OC4FastConfig 273
15.3.36 清除或者保持OCREF1信号
函式TIM_ClearOC1Ref 273
15.3.37 清除或者保持OCREF2信号
函式TIM_ClearOC2Ref 273
15.3.38 清除或者保持OCREF3信号
函式TIM_ClearOC3Ref 274
15.3.39 清除或者保持OCREF4信号
函式TIM_ClearOC4Ref 274
15.3.40 使能或禁用更新事件函式
TIM_UpdateDisableConfig 274
15.3.41 设定TIMx编码界面函式TIM_
EncoderInterfaceConfig 275
15.3.42 设定事件由软体产生函式
TIM_GenerateEvent 275
15.3.43 设定TIMx通道1极性函式
TIM_OC1PolarityConfig 275
15.3.44 设定TIMx通道2极性函式
TIM_OC2PolarityConfig 276
15.3.45 设定TIMx通道3极性函式
TIM_OC3PolarityConfig 276
15.3.46 设定TIMx通道4极性函式
TIM_OC4PolarityConfig 276
15.3.47 设定TIMx更新请求源函式
TIM_UpdateRequestConfig 276
15.3.48 使能或禁用霍尔感测器接口
函式TIM_SelectHallSensor 277
15.3.49 设定TIM单脉冲模式函式
TIM_SelectOnePulseMode 277
15.3.50 选择触发输出模式函式
TIM_SelectOutputTrigger 277
15.3.51 选择TIMx从模式函式
TIM_SelectSlaveMode 278
15.3.52 设定或者重置主/从模式
函式TIM_SelectMaster
SlaveMode 278
15.3.53 设定TIM计数器暂存器
值函式TIM_SetCounter 278
15.3.54 设定TIM自动重装载暂存
器值函式TIM_SetAutoreload 279
15.3.55 设定捕获比较1暂存器值
函式TIM_SetCompare1 279
15.3.56 设定捕获比较2暂存器值
函式TIM_SetCompare2 279
15.3.57 设定捕获比较3暂存器值
函式TIM_SetCompare3 279
15.3.58 设定捕获比较4暂存器值
函式TIM_SetCompare4 279
15.3.59 设定TIMx输入捕获1
预分频函式TIM_SetIC1
Prescaler 280
15.3.60 设定TIMx输入捕获2
预分频函式TIM_SetIC2
Prescaler 280
15.3.61 设定TIMx输入捕获3
预分频函式TIM_SetIC3
Prescaler 280
15.3.62 设定TIMx输入捕获4
预分频函式TIM_SetIC4
Prescaler 280
15.3.63 设定TIMx时钟分割值函式TIM_SetClockDivision 281
15.3.64 获取TIMx输入捕获1值
函式TIM_GetCapture1 281
15.3.65 获取TIMx输入捕获2值
函式TIM_GetCapture2 281
15.3.66 获取TIMx输入捕获3值
函式TIM_GetCapture3 281
15.3.67 获取TIMx输入捕获4值
函式TIM_GetCapture4 282
15.3.68 获取TIMx计数器值函式TIM_GetCounter 282
15.3.69 获取TIMx预分频值函式TIM_GetPrescaler 282
15.3.70 获取TIM标誌位函式TIM_GetFlagStatus 282
15.3.71 清除挂起标誌位函式TIM_ClearFlag 283
15.3.72 获取TIM中断函式TIM_GetITStatus 283
15.3.73 清除中断挂起标誌位函式TIM_ClearITPendingBit 283
15.4 综合练习 283
15.5 小结 286
15.6 习题 286
第16章 高级控制定时器系统
( 教学视频46分钟) 288
16.1 高级控制定时器(TIM1)结构 288
16.1.1 时基单元 288
16.1.2 计数器模式 289
16.1.3 重複向下计数器 290
16.1.4 高级控制定时器的特殊
工作模式 290
16.1.5 与霍尔元件的接口 291
16.2 高级控制定时器(TIM1)的
编程方法 291
16.2.1 TIM1暂存器结构 293
16.2.2 复位TIM1外设函式TIM1_DeInit 294
16.2.3 初始化TIM1时间基数单位
函式TIM1_TIM1BaseInit 295
16.2.4 初始化TIM1通道1函式TIM1_OC1Init 295
16.2.5 初始化TIM1通道2函式TIM1_OC2Init 295
16.2.6 初始化TIM1通道3函式TIM1_OC3Init 296
16.2.7 初始化TIM1通道4函式
TIM1_OC4Init 296
16.2.8 设定剎车特性函式
TIM1_BDTRConfig 297
16.2.9 初始化外设TIM1函式
TIM1_ICInit 297
16.2.10 设定PWM输入模式函式TIM1_PWMIConfig 298
16.2.11 复位TIM1_TIM1BaseInit
Struct结构成员函式TIM1_
TIM1BaseStructInit 299
16.2.12 复位TIM1_OCInitStruct
结构成员函式TIM1_OC
StructInit 299
16.2.13 复位TIM1_ICInitStruct
结构成员函式TIM1_IC
StructInit 299
16.2.14 复位TIM1_BDTRInitStruct
结构成员函式 TIM1_BDTRStructInit 300
16.2.15 使能或者禁用TIM1外设
函式TIM1_Cmd 300
16.2.16 使能或禁用TIM1主输出
函式TIM1_CtrlPWM
Outputs 300
16.2.17 使能或禁用TIM1中断TIM1_ITConfig函式 300
16.2.18 设定DMA接口函式TIM1_DMAConfig 301
16.2.19 使能或禁用DMA请求
函式TIM1_DMACmd 301
16.2.20 设定DMA内部时钟函式TIM1_InternalClockConfig 302
16.2.21 配置外部时钟模式1函式
TIM1_ETRClockMode1
Config 302
16.2.22 配置外部时钟模式2函式TIM1_ETRClockMode2Config 302
16.2.23 配置TIM1外部触发函式TIM1_ETRConfig 302
16.2.24 设定内部触发为外部时钟模式
函式 TIM1_ITRxExternal
ClockConfig 303
16.2.25 设定TIM1触发为外部时
钟函式TIM1_TixExternal
ClockConfig 303
16.2.26 选择TIM1输入触发源函式TIM1_SelectInputTrigger 303
16.2.27 使能或禁用更新事件函式TIM1_UpdateDisable
Config 304
16.2.28 设定更新请求源函式
TIM1_UpdateRequest
Config 304
16.2.29 使能或禁用霍尔感测器
接口函式TIM1_Select
HallSensor 304
16.2.30 设定TIM1单脉冲模式
函式TIM1_SelectOne
PulseMode 304
16.2.31 选择触发输出模式函式
TIM1_SelectOutput
Trigger 304
16.2.32 选择TIM1从模式函式
TIM1_SelectSlaveMode 305
16.2.33 选择TIM1主/从模式
函式TIM1_SelectMaster
SlaveMode 305
16.2.34 设定TIM1编码界面函式
TIM1_EncoderInterface
Config 305
16.2.35 设定TIM1预分频器函式TIM1_PrescalerConfig 306
16.2.36 设定TIM1计数器模式
函式TIM1_CounterMode
Config 306
16.2.37 设定TIM1输出1电平函式TIM1_ForcedOC1Config 306
16.2.38 设定TIM1输出2电平函式TIM1_ForcedOC2Config 306
16.2.39 设定TIM1输出3电平函式TIM1_ForcedOC3Config 307
16.2.40 设定TIM1输出4电平函式TIM1_ForcedOC4Config 307
16.2.41 使能或禁用预装载暂存器
TIM1_ARRPreloadConfig
函式 307
16.2.42 选择TIM1外设的通信
事件函式TIM1_SelectCOM 307
16.2.43 选择捕获比较DMA源函式
TIM1_SelectCCDMA 308
16.2.44 设定或重置捕获比较
控制位函式TIM1_CC
PreloadControl 308
16.2.45 使能或禁用CCR1上的
预装载暂存器函式 TIM1_OC1PreloadConfig 308
16.2.46 使能或禁用CCR2上的
预装载暂存器函式
TIM1_OC2PreloadConfig 308
16.2.47 使能或禁用CCR3上的
预装载暂存器函式
TIM1_OC3PreloadConfig 309
16.2.48 使能或禁用CCR4上的
预装载暂存器函式
TIM1_OC4PreloadConfig 309
16.2.49 设定捕获比较1快速特徵
函式TIM1_OC1FastConfig 309
16.2.50 设定捕获比较2快速特徵
函式TIM1_OC2FastConfig 309
16.2.51 设定捕获比较3快速特徵
函式TIM1_OC3FastConfig 309
16.2.52 设定捕获比较4快速特徵
函式TIM1_OC4FastConfig 310
16.2.53 清除或保持OCREF1信号
函式TIM1_ClearOC1Ref 310
16.2.54 清除或保持OCREF2信号
函式TIM1_ClearOC2Ref 310
16.2.55 清除或保持OCREF3信号
函式TIM1_ClearOC3Ref 310
16.2.56 清除或保持OCREF4信号
函式TIM1_ClearOC4Ref 311
16.2.57 设定事件由软体产生函式TIM1_GenerateEvent 311
16.2.58 设定通道1极性函式TIM1_OC1PolarityConfig 311
16.2.59 设定通道1N极性函式TIM1_OC1NpolarityConfig 311
16.2.60 设定通道2极性函式
TIM1_OC2PolarityConfig 311
16.2.61 设定通道2N极性函式
TIM1_OC2NpolarityConfig 312
16.2.62 设定通道3极性函式
TIM1_OC3PolarityConfig 312
16.2.63 设定通道3N极性函式
TIM1_OC3NpolarityConfig 312
16.2.64 设定通道4极性函式
TIM1_OC4PolarityConfig 312
16.2.65 设定计数器暂存器值函式
TIM1_SetCounter 312
16.2.66 使能或禁用捕获比较通道
x函式TIM1_CCxCmd 313
16.2.67 使能或禁用捕获比较通道
xN函式TIM1_CCxNCmd 313
16.2.68 选择TIM1输出比较模式
函式TIM1_SelectOCxM 313
16.2.69 设定自动重装载暂存器值
函式TIM1_SetAutoreload 314
16.2.70 设定捕获比较1暂存器值
函式TIM1_SetCompare1 314
16.2.71 设定捕获比较2暂存器值
函式TIM1_SetCompare2 314
16.2.72 设定捕获比较3暂存器值
函式TIM1_SetCompare3 315
16.2.73 设定捕获比较4暂存器值
函式TIM1_SetCompare4 315
16.2.74 设定输入捕获1预分频值函
数TIM1_SetIC1Prescaler 315
16.2.75 设定输入捕获2预分频值函
数TIM1_SetIC2Prescaler 315
16.2.76 设定输入捕获3预分频值函
数TIM1_SetIC3Prescaler 315
16.2.77 设定输入捕获4预分频值函
数TIM1_SetIC4Prescaler 316
16.2.78 设定时钟分割值函式
TIM1_SetClockDivision 316
16.2.79 获取输入捕获1的值函式
TIM1_GetCapture1 316
16.2.80 获取输入捕获2的值函式
TIM1_GetCapture2 316
16.2.81 获取输入捕获3的值函式
TIM1_GetCapture3 317
16.2.82 获取输入捕获4的值函式
TIM1_GetCapture4 317
16.2.83 获取TIM1计数器的值函式
TIM1_GetCounter 317
16.2.84 获取TIM1预分频值函式
TIM1_GetPrescaler 317
16.2.85 获取TIM1标誌位函式
TIM1_GetFlagStatus 317
16.2.86 清除TIM1挂起标誌位函式
TIM1_ClearFlag 317
16.2.87 获取TIM1中断函式
TIM1_GetITStatus 318
16.2.88 清除TIM1中断挂起
标誌位函式TIM1_
ClearITPendingBit 318
16.3 综合练习 318
16.4 小结 320
16.5 习题 320
第17章 时钟控制系统
( 教学视频43分钟) 322
17.1 复位和时钟控制(RCC) 322
17.1.1 复位的类型 322
17.1.2 时钟的类型 323
17.2 复位和时钟控制(RCC)的
编程方法 325
17.2.1 RCC暂存器结构 326
17.2.2 RCC外围设备复位函式
RCC_DeInit 326
17.2.3 配置高速振荡器HSE函式
RCC_HSEConfig 327
17.2.4 等待HSE完成启动函式
RCC_WaitForHSEStartUp 327
17.2.5 校正HIS函式RCC_
AdjustHSICalibrationValue 328
17.2.6 使能或禁用HIS函式
RCC_HSICmd 328
17.2.7 配置PLL函式RCC_
PLLConfig 328
17.2.8 使能或者禁用PLL函式
RCC_PLLCmd 328
17.2.9 配置系统时钟函式
RCC_SYSCLKConfig 329
17.2.10 获取系统时钟源函式
RCC_GetSYSCLKSource 329
17.2.11 配置AHB时钟函式
RCC_HCLKConfig 329
17.2.12 配置低速APB时钟函式
RCC_PCLK1Config 330
17.2.13 配置高速APB时钟函式
RCC_PCLK2Config 330
17.2.14 使能或者禁用RCC
中断函式RCC_ITConfig 330
17.2.15 配置USB时钟函式
RCC_USBCLKConfig 331
17.2.16 配置ADC时钟函式
RCC_ADCCLKConfig 331
17.2.17 配置LSE函式
RCC_LSEConfig 331
17.2.18 使能或者禁用LSI函式
RCC_LSICmd 332
17.2.19 配置RTC时钟函式RCC_RTCCLKConfig 332
17.2.20 使能或者禁用RTC时钟
函式RCC_RTCCLKCmd 332
17.2.21 获取时钟频率函式
RCC_GetClocksFreq 333
17.2.22 使能或禁用AHB外围
设备时钟函式RCC_AHB
PeriphClockCmd 334
17.2.23 使能或者禁用高速APB2
外围设备时钟函式RCC_
APB2PeriphClockCmd 334
17.2.24 使能或者禁用低速APB1
外围设备时钟函式RCC_
APB1PeriphClockCmd 334
17.2.25 高速APB2外围设备复位
函式RCC_APB2Periph
ResetCmd 335
17.2.26 低速APB1外围设备复位函式
RCC_APB1PeriphResetCmd 335
17.2.27 备份域复位函式
RCC_BackupResetCmd 335
17.2.28 使能或者禁用时钟安全
系统函式RCC_Clock
SecuritySystemCmd 336
17.2.29 选择输出时钟源函式
RCC_MCOConfig 336
17.2.30 获取RCC标誌函式
RCC_GetFlagStatus 336
17.2.31 清除RCC复位标誌函式
RCC_ClearFlag 337
17.2.32 获取RCC中断函式
RCC_GetITStatus 337
17.2.33 清除RCC中断挂起位函式
RCC_ClearITPendingBit 338
17.3 实时时钟(RTC) 338
17.3.1 RTC的复位 338
17.3.2 读RTC暂存器 338
17.3.3 配置RTC暂存器 339
17.3.4 RTC标誌的设定 339
17.4 实时时钟(RTC)的编程方法 339
17.4.1 RTC暂存器结构 340
17.4.2 使能或者禁用RTC中断
函式RTC_ITConfig 340
17.4.3 进入RTC配置模式函式
RTC_EnterConfigMode 341
17.4.4 跳出RTC配置模式函式
RTC_ExitConfigMode 341
17.4.5 获取RTC计数值函式
RTC_GetCounter 341
17.4.6 设定RTC计数值函式
RTC_SetCounter 341
17.4.7 获取RTC预分频数值函式
TC_GetPrescaler 342
17.4.8 设定RTC预分频数值函式
RTC_SetPrescaler 342
17.4.9 设定RTC警报值函式
RTC_SetAlarm 342
17.4.10 获取RTC分割值函式
RTC_GetDivider 342
17.4.11 等待RTC暂存器写完成函式
RTC_WaitForLastTask 342
17.4.12 等待同步函式
RTC_WaitForSynchro 343
17.4.13 获取RTC标誌位函式
RTC_GetFlagStatus 343
17.4.14 清除RTC挂起标誌位函式
RTC_ClearFlag 343
17.4.15 获取RTC中断函式
RTC_GetITStatus 343
17.4.16 清除RTC中断挂起位函式
RTC_ClearITPendingBit 344
17.5 综合练习 344
17.6 小结 348
17.7 习题 348
第18章 看门狗系统
( 教学视频22分钟) 351
18.1 独立看门狗(IWDG)简介 351
18.2 独立看门狗(IWDG)的编程方法 352
18.2.1 IWDG暂存器结构 352
18.2.2 使能或禁用写暂存器函式
IWDG_WriteAccessCmd 352
18.2.3 设定IWDG预分频因子
函式IWDG_SetPrescaler 353
18.2.4 设定IWDG重载暂存器
函式IWDG_SetReload 353
18.2.5 重载IWDG计数器函式
IWDG_ReloadCounter 353
18.2.6 使能独立看门狗函式
IWDG_Enable 353
18.2.7 获取IWDG标誌函式
IWDG_GetFlagStatus 354
18.3 视窗看门狗(WWDG)简介 354
18.3.1 视窗看门狗(WWDG)的
基本功能 355
18.3.2 编写视窗看门狗(WWDG)
逾时程式 355
18.4 视窗看门狗(WWDG)的
编程方法 355
18.4.1 WWDG暂存器结构 356
18.4.2 复位WWDG外围设备暂存器
复位函式WWDG_DeInit 356
18.4.3 设定WWDG预分频因子
函式WWDG_SetPrescaler 356
18.4.4 设定视窗值函式
WWDG_SetWindowValue 357
18.4.5 使能EWI函式
WWDG_EnableIT 357
18.4.6 设定WWDG计数器函式
WWDG_SetCounter 357
18.4.7 使能WWDG函式
WWDG_Enable 357
18.4.8 获取中断标誌位函式
WWDG_GetFlagStatus 357
18.4.9 清除中断标誌位函式
WWDG_ClearFlag 358
18.5 综合练习 358
18.6 小结 362
18.7 习题 362
第19章 备份暂存器(BKP)
( 教学视频18分钟) 364
19.1 备份暂存器(BKP)简介 364
19.1.1 侵入检测 364
19.1.2 RTC校準 364
19.2 备份暂存器(BKP)的编程方法 365
19.2.1 BKP暂存器结构 365
19.2.2 BKP暂存器复位函式
BKP_DeInit 366
19.2.3 配置侵入检测引脚有效
电平函式BKP_Tamper
PinLevelConfig 366
19.2.4 使能或禁用侵入检测引脚
函式BKP_TamperPinCmd 366
19.2.5 使能或禁用侵入检测引脚
中断函式BKP_ITConfig 366
19.2.6 使能或禁用校準时钟输出
函式 BKP_RTCCalibration
ClockOutputCmd 367
19.2.7 设定RTC时钟校準值函式
BKP_SetRTCCalibrationValue 367
19.2.8 写备份暂存器函式BKP_
WriteBackupRegister 367
19.2.9 读备份暂存器函式BKP_
ReadBackupRegister 367
19.2.10 获取侵入检测引脚事件标誌
函式BKP_GetFlagStatus 367
19.2.11 清除事件挂起标誌函式
BKP_ClearFlag 368
19.2.12 获取中断状态函式
BKP_GetITStatus 368
19.2.13 清除中断挂起位函式
BKP_ClearITPendingBit 368
19.3 综合练习 368
19.4 小结 370
19.5 习题 370
第20章 DMA控制器
( 教学视频26分钟) 372
20.1 DMA控制器简介 372
20.1.1 DMA暂存器的基本特性 372
20.1.2 DMA暂存器的基本功能 373
20.2 DMA控制器的编程方法 375
20.2.1 DMA暂存器结构 375
20.2.2 DMA通道暂存器复位函式
DMA_DeInit 375
20.2.3 参数初始化函式DMA_Init 376
20.2.4 复位DMA_InitStruct函式
DMA_StructInit 378
20.2.5 使能或禁用DMA通道函式
DMA_Cmd 378
20.2.6 使能或禁用DMA通道
中断函式DMA_ITConfig 378
20.2.7 获取剩余数据单元函式
DMA_GetCurrDataCounter 379
20.2.8 获取DMA通道标誌函式
DMA_GetFlagStatus 379
20.2.9 清除挂起标誌函式DMA_
ClearFlag 380
20.2.10 获取中断状态函式
DMA_GetITStatus 380
20.2.11 清除挂起位函式DMA
ClearITPendingBit 381
20.3 综合练习 381
20.4 小结 383
20.5 习题 383
第21章 电源控制(PWR)
( 教学视频34分钟) 386
21.1 电源控制的结构 386
21.2 电源管理器 387
21.2.1 上电复位(POR)和
掉电复位(PDR) 387
21.2.2 可程式电压监测器(PVD) 387
21.3 低功耗模式 387
21.3.1 降低系统时钟 388
21.3.2 外部时钟的控制 388
21.3.3 睡眠模式 388
21.3.4 停止模式 389
21.3.5 待机模式 390
21.3.6 低功耗模式下的自动唤醒
(AWU) 390
21.4 电源控制(PWR)的编程方法 390
21.4.1 GPIO暂存器结构 391
21.4.2 PWR外围暂存器复位函式
PWR_DeInit 391
21.4.3 使能或禁用备份暂存器函式
PWR_BackupAccessCmd 391
21.4.4 使能或禁用电源电压探测
器函式PWR_PVDCmd 391
21.4.5 配置电压门限值函式
PWR_PVDLevelConfig 392
21.4.6 使能或禁用唤醒引脚函式
PWR_WakeUpPinCmd 392
21.4.7 进入STOP模式函式
PWR_EnterSTOPMode 392
21.4.8 进入STANDBY模式函式
PWR_EnterSTANDBYMode 393
21.4.9 获取PWR标誌位状态函式
PWR_GetFlagStatus 393
21.4.10 清除PWR挂起标誌位
函式PWR_ClearFlag 393
21.5 综合练习 394
21.6 小结 397
21.7 习题 397
第四篇 嵌入式系统实战
第22章 嵌入式实时作业系统
FREERTOS的移植
( 教学视频22分钟) 399
22.1 获取FreeRTOS核心 399
22.2 在STM32上移植FreeRTOS 399
22.2.1 宏定义部分 399
22.2.2 C接口部分 400
22.2.3 彙编处理部分 402
22.2.4 创建测试任务 403
22.3 小结 405
22.4 习题 405
第23章 嵌入式系统UC/OS-Ⅱ的移植
( 教学视频23分钟) 407
23.1 获取UC/OS-Ⅱ嵌入式系统核心 407
23.2 在STM32上移植UC/OS-Ⅱ 407
23.2.1 移植要求 407
23.2.2 头档案OS_CPU.H 408
23.2.3 C档案OS_CPU_C.C 409
23.2.4 彙编档案OS_CPU_A.ASM 411
23.2.5 测试任务 413
23.3 小结 416
23.4 习题 416
上一篇:谢千惠 下一篇:圣神元宰

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有