21天学通ARM嵌入式开发

出版时间:2011-9  出版社:电子工业  作者:薛园园  页数:418  
Tag标签:无  

内容概要

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

编辑推荐

   为了能让初次接触ARM嵌入式系统开发的爱好者快速而又轻松地学会ARM处理器及其程序开发,笔者总结了自己学习ARM的经验,并结合多年实际开发的经验,编写了这本ARM嵌入式开发的基础教程。在《21天学通ARM嵌入式开发(附光盘第2版)》中,笔者薛园园从最基础的概念入手,循序渐进地将ARM处理器开发和程序设计中的每个技术点展现在读者面前,力求让读者在最短的时间内高效地掌握ARM处理器及嵌入式开发的基础概念及技术要点。本书采用了最新的ARM Cortex-M3内核进行讲解。最新的ARM Cortex-M3内核提供了更为强大的功能,目前正在取代老款的ARM7等内核。

图书封面

图书标签Tags

评论、评分、阅读与下载


    21天学通ARM嵌入式开发 PDF格式下载


用户评论 (总计36条)

 
 

  •   21天学通ARM嵌入式开发(第2版)(含DVD光盘1张)
  •   学通嵌入式,月薪可上万
  •   适合没有接触过STM32的人,介绍详细,入门还是很好的。
    这些函数在网上也可以当下,不过没有书上的详细。
    购买可以省不少时间的
  •   语言犀利,把麻烦的问题简单化,是本好书!嵌入式入门必选!
  •   电子工业的这套21天学会策划得非常好。品质非常高。
    包括:内容,要点,排版,视频课程的质量……都一级棒。
    如果,带点资料就更好了。
  •   包装比较严实 纸张不错 印刷比较好 正品 光盘内容对新手很有帮助
  •   刚刚开始学习,争取21天学通.
  •   快递有点慢了啊亲,晚了一天。21天学是不可能学好的,但是还是要学的。
  •   这本书适合初学者学习,值得买
  •   还没有细看内容,东西看着不错!
  •   物超所值!very good!
  •   书很差,上面好多代码有错,还太简单。
  •   给朋友买的,朋友说没有ARM的基础也可以接受。朋友正在学习中
  •   真快,就是书没有描述中那样详细介绍原理,感觉实际程序多了些,要是多些注释就好了
  •   对照光盘例题自己慢慢学
  •   总体还不错,和第一版一样,就是名字换了。不过总体说本书还可以,没有细看。。慢慢品读
  •   hoho好好学习
  •   还行,价格地道
  •   给同学买的,同学觉得还可以。
  •   刚开始学ARM,觉得无从下手,这本书可以系统的学习一下~
  •   如果看stm32 的库函数没弄明白,可以看下这本书,
    至于配套的视频,嗯...没戏,还有就是配套光盘里面
    居然一个例程都没得...
  •   有点像是直接搬用使用手册的内容!
  •   作为手册还可以,例程不太详尽
  •   章节多,感觉不怎么实用,不怎么适合自己
  •   评论的有点晚些、 这段时间都有看着本书、咋一看 他的目录规划还是不错的、
    前一、二篇算是 做引子了 还是蛮激发人的好奇与探索、但是到了第三篇 针对STM32的讲解
    有些过于 数据手册话了只是对库函数的介绍、单个外设片内资源的学习使用例子好像没有 可能我没看仔细 、 后面的 移植部分暂时还没看

    还有 光盘提供的视频、 讲课的人 好像就像读报纸一样(而且还老读错、重要的地方声音会突然变的模糊不清)
    以上是我发表的个人看法了
  •   真的觉得很一般,不太适合初学者
  •   光盘碎了,包装货丢了,不知还能换货不?
  •   如果只是初学,21天还是远远不够啊
  •   这本书是帮朋友买的,听他说还行
  •   21天学通ARM嵌入式开发(第2版
  •   这个这个
  •   书还行,但是视频真的跟shi一样
  •   21天学通ARM嵌入式开发
  •   视频做得太烂了
  •   垃圾。。。。。
  •   照本宣科 有没有具体的操作视频
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7