书籍详情
STM32F103x微控制器与μC/OS-Ⅱ操作系统
作者:贾丹平,桂珺 编
出版社:电子工业出版社
出版时间:2017-01-01
ISBN:9787121303548
定价:¥49.00
购买这本书可以去
内容简介
本书以引导读者快速全面掌握STM32F103x系列嵌入式微控制器为目的,由浅入深地带领读者走进嵌入式世界。本书共分为两部分:第一部分以嵌入式基本概念为平台,介绍嵌入式微控制器各模块的使用方法、库函数,从简单的单模块知识到复杂的多模块应用,涵盖Cortex-M3体系结构、开发平台、复位和时钟控制器、NVIC和EXTI模块、GPIO模块、FSMC模块、模数转换器模块、通用定时器模块、通信模块等常用功能模块。第二部分主要介绍μC/OS-Ⅱ操作系统的概念与应用,讲解μC/OS-Ⅱ操作系统的内核、常用的系统服务等知识。本书注重理论知识和实践能力的结合,推荐初学者使用库函数设计嵌入式程序以避免复杂的寄存器操作。
作者简介
桂珺,男,沈阳工业大学教师,全国高等学校电子信息类专业教学指导委员会,协作委员。曾获得2009年全国大学生电子设计竞赛辽宁省优秀指导教师。
目录
目 录
第1章 嵌入式系统概述 (1)
1.1 嵌入式系统简介 (1)
1.1.1 嵌入式系统定义 (1)
1.1.2 嵌入式系统的特点 (2)
1.1.3 嵌入式系统的应用领域 (3)
1.2 嵌入式系统的组成 (4)
1.3 嵌入式处理器 (5)
1.3.1 嵌入式处理器的分类 (5)
1.3.2 嵌入式处理器的选型原则 (6)
1.4 嵌入式操作系统 (7)
1.5 ARM处理器简介 (10)
1.5.1 ARM处理器的进化过程 (10)
1.5.2 ARM处理器的开发工具 (12)
1.6 嵌入式系统的设计方法 (13)
1.6.1 嵌入式系统的总体结构 (13)
1.6.2 嵌入式系统设计过程 (14)
1.6.3 嵌入式系统的硬/软件协同设计技术 (15)
思考与练习 (16)
第2章 ARM Cortex-M3内部结构 (17)
2.1 Cortex-M3简介 (17)
2.2 指令集 (20)
2.3 流水线 (21)
2.4 寄存器组 (22)
2.5 操作模式和特权等级 (25)
2.6 异常、中断和向量表 (26)
2.7 存储器映射 (29)
2.8 调试支持 (30)
思考与练习 (30)
第3章 STM32F1系列微控制器简介 (31)
3.1 基于Cortex-M3内核的STM32F1微控制器概述 (31)
3.2 STM32F1微控制器的系统结构 (33)
3.3 STM32F1微控制器的存储器结构与映射 (34)
3.4 STM32F1微控制器的嵌入式闪存 (36)
3.5 STM32F1微控制器的启动配置 (37)
3.6 STM32F1微控制器的电源控制 (38)
3.7 STM32F1微控制器的复位 (39)
3.8 STM32F1微控制器的调试端口 (41)
思考与练习 (41)
第4章 建立MDK-ARM5.0开发平台 (42)
4.1 MDK-ARM简介 (42)
4.2 CMSIS标准简介 (44)
4.3 STM32标准外设库 (45)
4.4 安装MDK-ARM5.0 (49)
4.5 创建工程模板 (52)
思考与练习 (57)
第5章 复位与时钟控制器 (58)
5.1 STM32F103x微控制器时钟模块简介 (58)
5.1.1 HSE时钟 (60)
5.1.2 HSI时钟 (60)
5.1.3 PLL (61)
5.1.4 LSE时钟 (61)
5.1.5 LSI时钟 (61)
5.1.6 系统时钟的选择 (62)
5.1.7 时钟安全系统 (62)
5.1.8 RTC时钟 (62)
5.1.9 看门狗时钟 (62)
5.1.10 时钟输出 (62)
5.1.11 片上外设时钟 (63)
5.2 RCC库函数说明 (63)
5.2.1 库函数RCC_DeInit (65)
5.2.2 库函数RCC_HSEConfig (65)
5.2.3 库函数RCC_WaitForHSEStartUp (65)
5.2.4 库函数RCC_AdjustHSICalibrationValue (66)
5.2.5 库函数RCC_HSICmd (66)
5.2.6 库函数RCC_PLLConfig (66)
5.2.7 库函数RCC_PLLCmd (67)
5.2.8 库函数RCC_SYSCLKConfig (67)
5.2.9 库函数RCC_GetSYSCLKSource (68)
5.2.10 库函数RCC_HCLKConfig (68)
5.2.11 库函数RCC_PCLK1Config (69)
5.2.12 库函数RCC_PCLK2Config (69)
5.2.13 库函数RCC_ITConfig (70)
5.2.14 库函数RCC_USBCLKConfig (70)
5.2.15 库函数RCC_ADCCLKConfig (70)
5.2.16 库函数RCC_LSEConfig (71)
5.2.17 库函数RCC_LSICmd (71)
5.2.18 库函数RCC_RTCCLKConfig (72)
5.2.19 库函数RCC_RTCCLKCmd (72)
5.2.20 库函数RCC_GetClocksFreq (72)
5.2.21 库函数RCC_AHBPeriphClockCmd (73)
5.2.22 库函数RCC_APB2PeriphClockCmd (73)
5.2.23 库函数RCC_APB1PeriphClockCmd (74)
5.2.24 库函数RCC_APB2PeriphResetCmd (75)
5.2.25 库函数RCC_APB1PeriphResetCmd (75)
5.2.26 库函数RCC_BackupResetCmd (75)
5.2.27 库函数RCC_ClockSecuritySystemCmd (76)
5.2.28 库函数RCC_MCOConfig (76)
5.2.29 库函数RCC_GetFlagStatus (76)
5.2.30 库函数RCC_ClearFlag (77)
5.2.31 库函数RCC_GetITStatus (77)
5.2.32 库函数RCC_ClearITPendingBit (78)
5.3 使用RCC库函数建立系统时钟 (78)
5.3.1 建立系统时钟的一般流程 (78)
5.3.2 实例 (79)
思考与练习 (79)
第6章 I/O端口模块 (81)
6.1 概述 (81)
6.2 GPIO库函数说明 (83)
6.2.1 库函数GPIO_DeInit (84)
6.2.2 库函数GPIO_AFIODeInit (84)
6.2.3 库函数GPIO_Init (84)
6.2.4 库函数GPIO_StructInit (86)
6.2.5 库函数GPIO_ReadInputDataBit (86)
6.2.6 库函数GPIO_ReadInputData (87)
6.2.7 库函数GPIO_ReadOutputDataBit (87)
6.2.8 库函数GPIO_ReadOutputData (87)
6.2.9 库函数GPIO_SetBits (88)
6.2.10 库函数GPIO_ResetBits (88)
6.2.11 库函数GPIO_WriteBit (88)
6.2.12 库函数GPIO_Write (88)
6.2.13 库函数GPIO_PinLockConfig (89)
6.2.14 库函数GPIO_EventOutputConfig (89)
6.2.15 库函数GPIO_EventOutputCmd (90)
6.2.16 库函数GPIO_PinRemapConfig (90)
6.2.17 库函数GPIO_EXTILineConfig (91)
思考与练习 (91)
第7章 中断和事件 (92)
7.1 嵌套向量中断控制器 (92)
7.2 外部中断/事件控制器 (95)
7.3 NVIC库函数说明 (96)
7.3.1 库函数NVIC_PriorityGroupConfig (97)
7.3.2 库函数NVIC_Init (97)
7.3.3 库函数NVIC_SetVectorTable (99)
7.3.4 库函数NVIC_SystemLPConfig (100)
7.4 EXTI库函数说明 (100)
7.4.1 库函数EXTI_DeInit (101)
7.4.2 库函数EXTI_Init (101)
7.4.3 库函数EXTI_StructInit (102)
7.4.4 库函数EXTI_GenerateSWInterrupt (103)
7.4.5 库函数EXTI_GetFlagStatus (103)
7.4.6 库函数EXTI_ClearFlag (103)
7.4.7 库函数EXTI_GetITStatus (103)
7.4.8 库函数EXTI_ClearITPendingBit (104)
思考与练习 (104)
第8章 系统时基定时器 (105)
8.1 概述 (105)
8.2 SysTick库函数说明 (106)
思考与练习 (106)
第9章 实时时钟和备份寄存器 (107)
9.1 实时时钟简介 (107)
9.2 后备寄存器简介 (111)
9.3 RTC库函数说明 (112)
9.3.1 库函数RTC_ITConfig (112)
9.3.2 库函数RTC_EnterConfigMode (113)
9.3.3 库函数RTC_ExitConfigMode (113)
9.3.4 库函数RTC_GetCounter (113)
9.3.5 库函数RTC_SetCounter (113)
9.3.6 库函数RTC_SetPrescaler (114)
9.3.7 库函数RTC_SetAlarm (114)
9.3.8 库函数RTC_WaitForLastTask (114)
9.3.9 库函数RTC_WaitForSynchro (114)
9.3.10 库函数RTC_GetFlagStatus (115)
9.3.11 库函数RTC_ClearFlag (115)
9.3.12 库函数RTC_GetITStatus (115)
9.3.13 库函数RTC_ClearITPendingBit (116)
9.4 BKP库函数说明 (116)
9.4.1 库函数BKP_DeInit (116)
9.4.2 库函数BKP_Init (117)
9.4.3 库函数BKP_TamperPinCmd (117)
9.4.4 库函数BKP_ITConfig (117)
9.4.5 库函数BKP_RTCOutputConfig (117)
9.4.6 库函数BKP_SetRTCCalibrationValue (118)
9.4.7 库函数BKP_WriteBackupRegister (118)
9.4.8 库函数BKP_ReadBackupRegister (119)
9.4.9 库函数BKP_GetFlagStatus (119)
9.4.10 库函数BKP_ClearFlag (119)
9.4.11 库函数BKP_GetITStatus (119)
9.4.12 库函数BKP_ClearITPendingBit (120)
思考与练习 (120)
第10章 嵌入式闪存 (121)
10.1 嵌入式闪存简介 (121)
10.1.1 嵌入式闪存的组织方式 (121)
10.1.2 嵌入式闪存的读操作 (122)
10.1.3 嵌入式编程和擦除控制器 (123)
10.2 FLASH库函数说明 (128)
10.2.1 库函数FLASH_SetLatency (129)
10.2.2 库函数FLASH_HalfCycleAccessCmd (129)
10.2.3 库函数FLASH_PrefetchBufferCmd (130)
10.2.4 库函数FLASH_Unlock (130)
10.2.5 库函数FLASH_Lock (130)
10.2.6 库函数FLASH_ErasePage (130)
10.2.7 库函数FLASH_EraseAllPages (131)
10.2.8 库函数FLASH_EraseOptionBytes (131)
10.2.9 库函数FLASH_ProgramWord (131)
10.2.10 库函数FLASH_ProgramHalfWord (131)
10.2.11 库函数FLASH_ProgramOptionByteData (132)
10.2.12 库函数FLASH_EnableWriteProtection (132)
10.2.13 库函数FLASH_ReadOutProtection (133)
10.2.14 库函数FLASH_UserOptionByteConfig (133)
10.2.15 库函数FLASH_GetUserOptionByte (133)
10.2.16 库函数FLASH_GetWriteProtectionOptionByte (134)
10.2.17 库函数FLASH_GetReadOutProtectionStatus (134)
10.2.18 库函数FLASH_GetPrefetchBufferStatus (134)
10.2.19 库函数FLASH_ITConfig (134)
10.2.20 库函数FLASH_GetFlagStatus (135)
10.2.21 库函数FLASH_ClearFlag (135)
10.2.22 库函数FLASH_GetStatus (135)
10.2.23 库函数FLASH_WaitForLastOperation (136)
思考与练习 (136)
第11章 USART串口模块 (137)
11.1 USART串口简介 (137)
11.1.1 功能概述 (138)
11.1.2 发送器 (139)
11.1.3 接收器 (140)
11.1.4 产生分数比特率 (141)
11.1.5 多处理器通信 (142)
11.1.6 LIN模式 (143)
11.1.7 USART同步模式 (143)
11.1.8 单线半双工 (144)
11.1.9 智能卡模式 (145)
11.1.10 红外模式 (146)
11.1.11 USART的中断请求 (147)
11.2 USART库函数说明 (148)
11.2.1 库函数USART_DeInit (149)
11.2.2 库函数USART_Init (149)
11.2.3 库函数USART_StructInit (151)
11.2.4 库函数USART_Cmd (151)
11.2.5 库函数USART_ITConfig (151)
11.2.6 库函数USART_DMACmd (152)
11.2.7 库函数USART_SetAddress (152)
11.2.8 库函数USART_WakeUpConfig (152)
11.2.9 库函数USART_ReceiverWakeUpCmd (153)
11.2.10 库函数USART_LINBreakDetectiLengthConfig (153)
11.2.11 库函数USART_LINCmd (153)
11.2.12 库函数USART_SendData (154)
11.2.13 库函数USART_ReceiveData (154)
11.2.14 库函数USART_SendBreak (154)
11.2.15 库函数USART_SetGuardTime (154)
11.2.16 库函数USART_SetPrescaler (155)
11.2.17 库函数USART_SmartCardCmd (155)
11.2.18 库函数USART_SmartCardNackCmd (155)
11.2.19 库函数USART_HalfDuplexCmd (155)
11.2.20 库函数USART_IrDAConfig (156)
11.2.21 库函数USART_IrDACmd (156)
11.2.22 库函数USART_GetFlagStatus (156)
11.2.23 库函数USART_ClearFlag (157)
11.2.24 库函数USART_GetITStatus (157)
11.2.25 库函数USART_ClearITPendingBit (158)
思考与练习 (158)
第12章 SPI模块 (159)
12.1 SPI简介 (159)
12.1.1 引脚概述 (160)
12.1.2 数据传输模式 (161)
12.1.3 SPI从模式 (162)
12.1.4 SPI主模式 (163)
12.1.5 状态标志 (163)
12.1.6 利用DMA的SPI通信 (164)
12.1.7 SPI中断 (164)
12.2 SPI库函数说明 (164)
12.2.1 库函数SPI_DeInit (165)
12.2.2 库函数SPI_Init (165)
12.2.3 库函数SPI_StructInit (167)
12.2.4 库函数SPI_Cmd (167)
12.2.5 库函数SPI_I2S_ITConfig (168)
12.2.6 库函数SPI_I2S_DMACmd (168)
12.2.7 库函数SPI_I2S_SendData (168)
12.2.8 库函数SPI_I2S_ReceiveData (169)
12.2.9 库函数SPI_NSSInternalSoftwareConfig (169)
12.2.10 库函数SPI_SSOutputCmd (169)
12.2.11 库函数SPI_DataSizeConfig (170)
12.2.12 库函数SPI_TransmitCRC (170)
12.2.13 库函数SPI_CalculateCRC (170)
12.2.14 库函数SPI_GetCRC (170)
12.2.15 库函数SPI_GetCRCPolynomial (171)
12.2.16 库函数SPI_BiDirectionalLineConfig (171)
12.2.17 库函数SPI_I2S_GetFlagStatus (171)
12.2.18 库函数SPI_I2S_ClearFlag (172)
12.2.19 库函数SPI_I2S_GetITStatus (172)
12.2.20 库函数SPI_I2S_ClearITPendingBit (172)
思考与练习 (173)
第13章 I2C模块 (174)
13.1 I2C简介 (174)
13.1.1 功能描述 (175)
13.1.2 I2C从模式 (176)
13.1.3 I2C主模式 (177)
13.1.4 错误条件 (179)
13.1.5 SDA/SCL线控制 (180)
13.1.6 DMA请求 (180)
13.1.7 I2C的中断 (181)
13.2 I2C库函数说明 (182)
13.2.1 库函数I2C_DeInit (183)
13.2.2 库函数I2C_Init (183)
13.2.3 库函数I2C_StructInit (184)
13.2.4 库函数I2C_Cmd (185)
13.2.5 库函数I2C_ITConfig (185)
13.2.6 库函数I2C_DMACmd (186)
13.2.7 库函数I2C_SendData (186)
13.2.8 库函数I2C_ReceiveData (186)
13.2.9 库函数I2C_DMALastTransferCmd (186)
13.2.10 库函数I2C_GenerateSTART (187)
13.2.11 库函数I2C_GenerateSTOP (187)
13.2.12 库函数I2C_AcknowledgeConfig (187)
13.2.13 库函数I2C_OwnAddress2Config (187)
13.2.14 库函数I2C_DualAddressCmd (188)
13.2.15 库函数I2C_GeneralCallCmd (188)
13.2.16 库函数I2C_Send7bitAddress (188)
13.2.17 库函数I2C_ReadRegister (189)
13.2.18 库函数I2C_SoftwareResetCmd (189)
13.2.19 库函数I2C_SMBusAlertConfig (189)
13.2.20 库函数I2C_TransmitPEC (190)
13.2.21 库函数I2C_PECPositionConfig (190)
13.2.22 库函数I2C_CalculatePEC (190)
13.2.23 库函数I2C_GetPEC (190)
13.2.24 库函数I2C_ARPCmd (191)
13.2.25 库函数I2C_StretchClockCmd (191)
13.2.26 库函数I2C_FastModeDutyCycleConfig (191)
13.2.27 库函数I2C_GetLastEvent (191)
13.2.28 库函数I2C_CheckEvent (192)
13.2.29 库函数I2C_GetFlagStatus (192)
13.2.30 库函数I2C_ClearFlag (193)
13.2.31 库函数I2C_GetITStatus (193)
13.2.32 库函数I2C_ClearITPendingBit (194)
思考与练习 (194)
第14章 DMA控制器 (195)
14.1 DMA简介 (195)
14.2 DMA库函数说明 (199)
14.2.1 库函数DMA_DeInit (200)
14.2.2 库函数DMA_Init (200)
14.2.3 库函数DMA_StructInit (201)
14.2.4 库函数DMA_Cmd (202)
14.2.5 库函数DMA_ITConfig (202)
14.2.6 库函数DMA_GetCurrDataCounte (203)
14.2.7 库函数DMA_GetFlagStatus (203)
14.2.8 库函数DMA_ClearFlag (203)
14.2.9 库函数DMA_GetITStatus (203)
14.2.10 库函数DMA_ClearITPendingBit (204)
思考与练习 (204)
第15章 FSMC模块 (205)
15.1 FSMC简介 (205)
15.2 与非总线复用模式的异步16位NOR闪存接口 (207)
15.2.1 FSMC的配置 (207)
15.2.2 时序计算 (209)
15.2.3 硬件连接 (210)
15.2.4 从外部NOR闪存存储器执行代码 (211)
15.3 与非总线复用的16位SRAM接口 (211)
15.3.1 FSMC配置 (211)
15.3.2 时序计算 (212)
15.3.3 硬件连接 (213)
15.4 与8位的NAND闪存存储器接口 (213)
15.4.1 FSMC配置 (213)
15.4.2 时序计算 (215)
15.4.3 硬件连接 (217)
15.4.4 错误校验码计算 (217)
15.5 FSMC库函数说明 (218)
思考与练习 (219)
第16章 模数转换器模块 (220)
16.1 ADC简介 (220)
16.1.1 功能描述 (221)
16.1.2 自校准 (223)
16.1.3 可编程的采样时间 (224)
16.1.4 外部触发转换 (224)
16.1.5 双ADC模式 (225)
16.1.6 温度传感器 (226)
16.1.7 ADC的中断事件 (227)
16.2 ADC库函数说明 (227)
16.2.1 库函数ADC_DeInit (228)
16.2.2 库函数ADC_Init (228)
16.2.3 库函数ADC_StructInit (230)
16.2.4 库函数ADC_Cmd (231)
16.2.5 库函数ADC_ITConfig (231)
16.2.6 库函数ADC_DMACmd (231)
16.2.7 库函数ADC_ResetCalibration (232)
16.2.8 库函数ADC_GetResetCalibrationStatus (232)
16.2.9 库函数ADC_StartCalibration (232)
16.2.10 库函数ADC_GetCalibrationStatus (233)
16.2.11 库函数ADC_SoftwareStartConvCmd (233)
16.2.12 库函数ADC_GetSoftwareStartConvStatus (233)
16.2.13 库函数ADC_DiscModeChannelCountConfig (233)
16.2.14 库函数ADC_DiscModeCmd (234)
16.2.15 库函数ADC_RegularChannelConfig (234)
16.2.16 库函数ADC_ExternalTrigConvConfig (235)
16.2.17 库函数ADC_GetConversionValue (235)
16.2.18 库函数ADC_GetDuelModeConversionValue (235)
16.2.19 库函数ADC_AutoInjectedConvCmd (236)
16.2.20 库函数ADC_InjectedDiscModeCmd (236)
16.2.21 库函数ADC_ExternalTrigInjectedConvConfig (236)
16.2.22 库函数ADC_ExternalTrigInjectedConvCmd (237)
16.2.23 库函数ADC_SoftwareStartinjectedConvCmd (237)
16.2.24 库函数ADC_GetsoftwareStartinjectedConvStatus (237)
16.2.25 库函数ADC_InjectedChannleConfig (238)
16.2.26 库函数ADC_InjectedSequencerLengthConfig (238)
16.2.27 库函数ADC_SetInjectedOffset (238)
16.2.28 库函数ADC_GetInjectedConversionValue (239)
16.2.29 库函数ADC_AnalogWatchdogCmd (239)
16.2.30 库函数ADC_AnalogWatchdongThresholdsConfig (239)
16.2.31 库函数ADC_AnalogWatchdongSingleChannelConfig (240)
16.2.32 库函数ADC_TampSensorVrefintCmd (240)
16.2.33 库函数ADC_GetFlagStatus (240)
16.2.34 库函数ADC_ClearFlag (241)
16.2.35 库函数ADC_GetITStatus (241)
16.2.36 库函数ADC_ClearITPendingBit (241)
思考与练习 (241)
第17章 定时器模块 (243)
17.1 TIM简介 (243)
17.1.1 计数功能 (244)
17.1.2 时钟选择 (248)
17.1.3 捕获/比较通道 (250)
17.1.4 定时器同步 (261)
17.2 TIM库函数说明 (265)
17.2.1 库函数TIM_DeInit (268)
17.2.2 库函数TIM_TimeBaseInit (268)
17.2.3 库函数TIM_OC1Init (269)
17.2.4 库函数TIM_ICInit (270)
17.2.5 库函数TIM_BDTRConfig (271)
17.2.6 库函数TIM_TimeBaseStructInit (272)
17.2.7 库函数TIM_OCStructInit (273)
17.2.8 库函数TIM_ICStructInit (273)
17.2.9 库函数TIM_BDTRStructInit (274)
17.2.10 库函数TIM_Cmd (274)
17.2.11 库函数TIM_ITConfig (274)
17.2.12 库函数TIM_GenerateEvent (275)
17.2.13 库函数TIM_DMAConfig (275)
17.2.14 库函数TIM_DMACmd (276)
17.2.15 库函数TIM_InternalClockConfig (277)
17.2.16 库函数TIM_ITRxExternalClockConfig (277)
17.2.17 库函数TIM_TIxExternalClockConfig (278)
17.2.18 库函数TIM_ETRClockMode1Config (278)
17.2.19 库函数TIM_ETRClockMode2Config (279)
17.2.20 库函数TIM_ETRConfig (279)
17.2.21 库函数TIM_SelectInputTrigger (279)
17.2.22 库函数TIM_PrescalerConfig (280)
17.2.23 库函数TIM_CounterModeConfig (280)
17.2.24 库函数TIM_ForcedOC1Config (281)
17.2.25 库函数TIM_ARRPreloadConfig (281)
17.2.26 库函数TIM_SelectCOM (281)
17.2.27 库函数TIM_SelectCCDMA (281)
17.2.28 库函数TIM_CCPreloadControl (282)
17.2.29 库函数TIM_OC1PreloadConfig (282)
17.2.30 库函数TIM_OC1FastConfig (282)
17.2.31 库函数TIM_ClearOC1Ref (283)
17.2.32 库函数TIM_UpdateDisableConfig (283)
17.2.33 库函数TIM_EncoderInterfaceConfig (283)
17.2.34 库函数TIM_OC1PolarityConfig (284)
17.2.35 库函数TIM_OC1NPolarityConfig (284)
17.2.36 库函数TIM_CCxCmd (284)
17.2.37 库函数TIM_CCxNCmd (285)
17.2.38 库函数TIM_SelectOCxM (285)
17.2.39 库函数TIM_UpdateRequestConfig (285)
17.2.40 库函数TIM_SelectHallSensor (286)
17.2.41 库函数TIM_SelectOnePulseMode (286)
17.2.42 库函数TIM_SelectOutputTrigger (286)
17.2.43 库函数TIM_SelectSlaveMode (287)
17.2.44 库函数TIM_SelectMasterSlaveMode (288)
17.2.45 库函数TIM_SetAutoreload (288)
17.2.46 库函数TIM_SetCompare1 (288)
17.2.47 库函数TIM_SetIC1Prescaler (288)
17.2.48 库函数TIM_SetClockDivision (289)
17.2.49 库函数TIM_GetCapture1 (289)
17.2.50 库函数TIM_GetCounter (289)
17.2.51 库函数TIM_GetPrescaler (289)
17.2.52 库函数TIM_GetFlagStatus (290)
17.2.53 库函数TIM_ClearFlag (290)
17.2.54 库函数TIM_GetITStatus (291)
17.2.55 库函数TIM_ClearITPendingBit (291)
思考与练习 (291)
第18章 看门狗模块 (292)
18.1 独立看门狗简介 (292)
18.2 窗口看门狗简介 (293)
18.3 IWDG库函数说明 (295)
18.3.1 库函数IWDG_WriteAccessCmd (295)
18.3.2 库函数IWDG_SetPrescaler (296)
18.3.3 库函数IWDG_SetReload (296)
18.3.4 库函数IWDG_ReloadCounter (296)
18.3.5 库函数IWDG_Enable (296)
18.3.6 库函数IWDG_GetFlagStatus (297)
18.4 WWDG库函数说明 (297)
18.4.1 库函数WWDG_DeInit (297)
18.4.2 库函数WWDG_SetPrescaler (297)
18.4.3 库函数WWDG_SetWindowValue (298)
18.4.4 库函数WWDG_EnableIT (298)
18.4.5 库函数WWDG_SetCounter (298)
18.4.6 库函数WWDG_Enable (298)
思考与练习 (299)
第19章 μC/OS-Ⅱ操作系统概述 (300)
19.1 μC/OS-Ⅱ简介 (300)
19.2 实时系统概念 (300)
19.2.1 前后台系统 (301)
19.2.2 代码的临界段 (301)
19.2.3 任务 (301)
19.2.4 内核 (302)
19.2.5 调度 (303)
19.2.6 可重入型 (303)
19.2.7 不可剥夺型内核 (303)
19.2.8 可剥夺型内核 (303)
19.2.9 时间片轮番调度法 (304)
19.2.10 任务优先级 (304)
19.2.11 死锁 (304)
19.2.12 同步 (304)
19.2.13 任务间的通信 (305)
19.2.14 时钟节拍 (305)
19.2.15 临界段 (306)
19.3 内核结构 (306)
19.3.1 任务控制块 (306)
19.3.2 任务调度 (307)
19.3.3 给调度器上锁和开锁 (307)
19.3.4 空闲任务 (308)
19.3.5 统计任务 (308)
19.3.6 ?C/OS中的中断处理 (308)
19.3.7 时钟节拍 (309)
19.3.8 ?C/OS-Ⅱ初始化与启动 (309)
思考与练习 (309)
第20章 任务管理与通信 (310)
20.1 任务管理 (310)
20.1.1 建立任务 (311)
20.1.2 任务堆栈 (311)
20.1.3 删除任务 (311)
20.1.4 请求删除任务 (312)
20.1.5 改变任务的优先级 (312)
20.1.6 挂起任务 (313)
20.1.7 恢复任务 (313)
20.2 任务之间的通信 (313)
20.2.1 事件控制块 (313)
20.2.2 信号量 (315)
20.2.3 邮箱 (316)
20.2.4 消息队列 (318)
思考与练习 (320)
第21章 时间管理和内存管理 (321)
21.1 时间管理 (321)
21.1.1 任务延时函数 (321)
21.1.2 按时分秒延时函数 (322)
21.1.3 让处在延时期的任务结束延时 (322)
21.1.4 系统时间 (322)
21.2 内存管理 (323)
21.2.1 内存控制块 (323)
21.2.2 建立一个内存分区 (323)
21.2.3 分配一个内存块 (324)
21.2.4 释放一个内存块 (324)
21.2.5 查询一个内存分区的状态 (324)
21.2.6 等待一个内存块 (325)
思考与练习 (325)
参考文献 (326)
第1章 嵌入式系统概述 (1)
1.1 嵌入式系统简介 (1)
1.1.1 嵌入式系统定义 (1)
1.1.2 嵌入式系统的特点 (2)
1.1.3 嵌入式系统的应用领域 (3)
1.2 嵌入式系统的组成 (4)
1.3 嵌入式处理器 (5)
1.3.1 嵌入式处理器的分类 (5)
1.3.2 嵌入式处理器的选型原则 (6)
1.4 嵌入式操作系统 (7)
1.5 ARM处理器简介 (10)
1.5.1 ARM处理器的进化过程 (10)
1.5.2 ARM处理器的开发工具 (12)
1.6 嵌入式系统的设计方法 (13)
1.6.1 嵌入式系统的总体结构 (13)
1.6.2 嵌入式系统设计过程 (14)
1.6.3 嵌入式系统的硬/软件协同设计技术 (15)
思考与练习 (16)
第2章 ARM Cortex-M3内部结构 (17)
2.1 Cortex-M3简介 (17)
2.2 指令集 (20)
2.3 流水线 (21)
2.4 寄存器组 (22)
2.5 操作模式和特权等级 (25)
2.6 异常、中断和向量表 (26)
2.7 存储器映射 (29)
2.8 调试支持 (30)
思考与练习 (30)
第3章 STM32F1系列微控制器简介 (31)
3.1 基于Cortex-M3内核的STM32F1微控制器概述 (31)
3.2 STM32F1微控制器的系统结构 (33)
3.3 STM32F1微控制器的存储器结构与映射 (34)
3.4 STM32F1微控制器的嵌入式闪存 (36)
3.5 STM32F1微控制器的启动配置 (37)
3.6 STM32F1微控制器的电源控制 (38)
3.7 STM32F1微控制器的复位 (39)
3.8 STM32F1微控制器的调试端口 (41)
思考与练习 (41)
第4章 建立MDK-ARM5.0开发平台 (42)
4.1 MDK-ARM简介 (42)
4.2 CMSIS标准简介 (44)
4.3 STM32标准外设库 (45)
4.4 安装MDK-ARM5.0 (49)
4.5 创建工程模板 (52)
思考与练习 (57)
第5章 复位与时钟控制器 (58)
5.1 STM32F103x微控制器时钟模块简介 (58)
5.1.1 HSE时钟 (60)
5.1.2 HSI时钟 (60)
5.1.3 PLL (61)
5.1.4 LSE时钟 (61)
5.1.5 LSI时钟 (61)
5.1.6 系统时钟的选择 (62)
5.1.7 时钟安全系统 (62)
5.1.8 RTC时钟 (62)
5.1.9 看门狗时钟 (62)
5.1.10 时钟输出 (62)
5.1.11 片上外设时钟 (63)
5.2 RCC库函数说明 (63)
5.2.1 库函数RCC_DeInit (65)
5.2.2 库函数RCC_HSEConfig (65)
5.2.3 库函数RCC_WaitForHSEStartUp (65)
5.2.4 库函数RCC_AdjustHSICalibrationValue (66)
5.2.5 库函数RCC_HSICmd (66)
5.2.6 库函数RCC_PLLConfig (66)
5.2.7 库函数RCC_PLLCmd (67)
5.2.8 库函数RCC_SYSCLKConfig (67)
5.2.9 库函数RCC_GetSYSCLKSource (68)
5.2.10 库函数RCC_HCLKConfig (68)
5.2.11 库函数RCC_PCLK1Config (69)
5.2.12 库函数RCC_PCLK2Config (69)
5.2.13 库函数RCC_ITConfig (70)
5.2.14 库函数RCC_USBCLKConfig (70)
5.2.15 库函数RCC_ADCCLKConfig (70)
5.2.16 库函数RCC_LSEConfig (71)
5.2.17 库函数RCC_LSICmd (71)
5.2.18 库函数RCC_RTCCLKConfig (72)
5.2.19 库函数RCC_RTCCLKCmd (72)
5.2.20 库函数RCC_GetClocksFreq (72)
5.2.21 库函数RCC_AHBPeriphClockCmd (73)
5.2.22 库函数RCC_APB2PeriphClockCmd (73)
5.2.23 库函数RCC_APB1PeriphClockCmd (74)
5.2.24 库函数RCC_APB2PeriphResetCmd (75)
5.2.25 库函数RCC_APB1PeriphResetCmd (75)
5.2.26 库函数RCC_BackupResetCmd (75)
5.2.27 库函数RCC_ClockSecuritySystemCmd (76)
5.2.28 库函数RCC_MCOConfig (76)
5.2.29 库函数RCC_GetFlagStatus (76)
5.2.30 库函数RCC_ClearFlag (77)
5.2.31 库函数RCC_GetITStatus (77)
5.2.32 库函数RCC_ClearITPendingBit (78)
5.3 使用RCC库函数建立系统时钟 (78)
5.3.1 建立系统时钟的一般流程 (78)
5.3.2 实例 (79)
思考与练习 (79)
第6章 I/O端口模块 (81)
6.1 概述 (81)
6.2 GPIO库函数说明 (83)
6.2.1 库函数GPIO_DeInit (84)
6.2.2 库函数GPIO_AFIODeInit (84)
6.2.3 库函数GPIO_Init (84)
6.2.4 库函数GPIO_StructInit (86)
6.2.5 库函数GPIO_ReadInputDataBit (86)
6.2.6 库函数GPIO_ReadInputData (87)
6.2.7 库函数GPIO_ReadOutputDataBit (87)
6.2.8 库函数GPIO_ReadOutputData (87)
6.2.9 库函数GPIO_SetBits (88)
6.2.10 库函数GPIO_ResetBits (88)
6.2.11 库函数GPIO_WriteBit (88)
6.2.12 库函数GPIO_Write (88)
6.2.13 库函数GPIO_PinLockConfig (89)
6.2.14 库函数GPIO_EventOutputConfig (89)
6.2.15 库函数GPIO_EventOutputCmd (90)
6.2.16 库函数GPIO_PinRemapConfig (90)
6.2.17 库函数GPIO_EXTILineConfig (91)
思考与练习 (91)
第7章 中断和事件 (92)
7.1 嵌套向量中断控制器 (92)
7.2 外部中断/事件控制器 (95)
7.3 NVIC库函数说明 (96)
7.3.1 库函数NVIC_PriorityGroupConfig (97)
7.3.2 库函数NVIC_Init (97)
7.3.3 库函数NVIC_SetVectorTable (99)
7.3.4 库函数NVIC_SystemLPConfig (100)
7.4 EXTI库函数说明 (100)
7.4.1 库函数EXTI_DeInit (101)
7.4.2 库函数EXTI_Init (101)
7.4.3 库函数EXTI_StructInit (102)
7.4.4 库函数EXTI_GenerateSWInterrupt (103)
7.4.5 库函数EXTI_GetFlagStatus (103)
7.4.6 库函数EXTI_ClearFlag (103)
7.4.7 库函数EXTI_GetITStatus (103)
7.4.8 库函数EXTI_ClearITPendingBit (104)
思考与练习 (104)
第8章 系统时基定时器 (105)
8.1 概述 (105)
8.2 SysTick库函数说明 (106)
思考与练习 (106)
第9章 实时时钟和备份寄存器 (107)
9.1 实时时钟简介 (107)
9.2 后备寄存器简介 (111)
9.3 RTC库函数说明 (112)
9.3.1 库函数RTC_ITConfig (112)
9.3.2 库函数RTC_EnterConfigMode (113)
9.3.3 库函数RTC_ExitConfigMode (113)
9.3.4 库函数RTC_GetCounter (113)
9.3.5 库函数RTC_SetCounter (113)
9.3.6 库函数RTC_SetPrescaler (114)
9.3.7 库函数RTC_SetAlarm (114)
9.3.8 库函数RTC_WaitForLastTask (114)
9.3.9 库函数RTC_WaitForSynchro (114)
9.3.10 库函数RTC_GetFlagStatus (115)
9.3.11 库函数RTC_ClearFlag (115)
9.3.12 库函数RTC_GetITStatus (115)
9.3.13 库函数RTC_ClearITPendingBit (116)
9.4 BKP库函数说明 (116)
9.4.1 库函数BKP_DeInit (116)
9.4.2 库函数BKP_Init (117)
9.4.3 库函数BKP_TamperPinCmd (117)
9.4.4 库函数BKP_ITConfig (117)
9.4.5 库函数BKP_RTCOutputConfig (117)
9.4.6 库函数BKP_SetRTCCalibrationValue (118)
9.4.7 库函数BKP_WriteBackupRegister (118)
9.4.8 库函数BKP_ReadBackupRegister (119)
9.4.9 库函数BKP_GetFlagStatus (119)
9.4.10 库函数BKP_ClearFlag (119)
9.4.11 库函数BKP_GetITStatus (119)
9.4.12 库函数BKP_ClearITPendingBit (120)
思考与练习 (120)
第10章 嵌入式闪存 (121)
10.1 嵌入式闪存简介 (121)
10.1.1 嵌入式闪存的组织方式 (121)
10.1.2 嵌入式闪存的读操作 (122)
10.1.3 嵌入式编程和擦除控制器 (123)
10.2 FLASH库函数说明 (128)
10.2.1 库函数FLASH_SetLatency (129)
10.2.2 库函数FLASH_HalfCycleAccessCmd (129)
10.2.3 库函数FLASH_PrefetchBufferCmd (130)
10.2.4 库函数FLASH_Unlock (130)
10.2.5 库函数FLASH_Lock (130)
10.2.6 库函数FLASH_ErasePage (130)
10.2.7 库函数FLASH_EraseAllPages (131)
10.2.8 库函数FLASH_EraseOptionBytes (131)
10.2.9 库函数FLASH_ProgramWord (131)
10.2.10 库函数FLASH_ProgramHalfWord (131)
10.2.11 库函数FLASH_ProgramOptionByteData (132)
10.2.12 库函数FLASH_EnableWriteProtection (132)
10.2.13 库函数FLASH_ReadOutProtection (133)
10.2.14 库函数FLASH_UserOptionByteConfig (133)
10.2.15 库函数FLASH_GetUserOptionByte (133)
10.2.16 库函数FLASH_GetWriteProtectionOptionByte (134)
10.2.17 库函数FLASH_GetReadOutProtectionStatus (134)
10.2.18 库函数FLASH_GetPrefetchBufferStatus (134)
10.2.19 库函数FLASH_ITConfig (134)
10.2.20 库函数FLASH_GetFlagStatus (135)
10.2.21 库函数FLASH_ClearFlag (135)
10.2.22 库函数FLASH_GetStatus (135)
10.2.23 库函数FLASH_WaitForLastOperation (136)
思考与练习 (136)
第11章 USART串口模块 (137)
11.1 USART串口简介 (137)
11.1.1 功能概述 (138)
11.1.2 发送器 (139)
11.1.3 接收器 (140)
11.1.4 产生分数比特率 (141)
11.1.5 多处理器通信 (142)
11.1.6 LIN模式 (143)
11.1.7 USART同步模式 (143)
11.1.8 单线半双工 (144)
11.1.9 智能卡模式 (145)
11.1.10 红外模式 (146)
11.1.11 USART的中断请求 (147)
11.2 USART库函数说明 (148)
11.2.1 库函数USART_DeInit (149)
11.2.2 库函数USART_Init (149)
11.2.3 库函数USART_StructInit (151)
11.2.4 库函数USART_Cmd (151)
11.2.5 库函数USART_ITConfig (151)
11.2.6 库函数USART_DMACmd (152)
11.2.7 库函数USART_SetAddress (152)
11.2.8 库函数USART_WakeUpConfig (152)
11.2.9 库函数USART_ReceiverWakeUpCmd (153)
11.2.10 库函数USART_LINBreakDetectiLengthConfig (153)
11.2.11 库函数USART_LINCmd (153)
11.2.12 库函数USART_SendData (154)
11.2.13 库函数USART_ReceiveData (154)
11.2.14 库函数USART_SendBreak (154)
11.2.15 库函数USART_SetGuardTime (154)
11.2.16 库函数USART_SetPrescaler (155)
11.2.17 库函数USART_SmartCardCmd (155)
11.2.18 库函数USART_SmartCardNackCmd (155)
11.2.19 库函数USART_HalfDuplexCmd (155)
11.2.20 库函数USART_IrDAConfig (156)
11.2.21 库函数USART_IrDACmd (156)
11.2.22 库函数USART_GetFlagStatus (156)
11.2.23 库函数USART_ClearFlag (157)
11.2.24 库函数USART_GetITStatus (157)
11.2.25 库函数USART_ClearITPendingBit (158)
思考与练习 (158)
第12章 SPI模块 (159)
12.1 SPI简介 (159)
12.1.1 引脚概述 (160)
12.1.2 数据传输模式 (161)
12.1.3 SPI从模式 (162)
12.1.4 SPI主模式 (163)
12.1.5 状态标志 (163)
12.1.6 利用DMA的SPI通信 (164)
12.1.7 SPI中断 (164)
12.2 SPI库函数说明 (164)
12.2.1 库函数SPI_DeInit (165)
12.2.2 库函数SPI_Init (165)
12.2.3 库函数SPI_StructInit (167)
12.2.4 库函数SPI_Cmd (167)
12.2.5 库函数SPI_I2S_ITConfig (168)
12.2.6 库函数SPI_I2S_DMACmd (168)
12.2.7 库函数SPI_I2S_SendData (168)
12.2.8 库函数SPI_I2S_ReceiveData (169)
12.2.9 库函数SPI_NSSInternalSoftwareConfig (169)
12.2.10 库函数SPI_SSOutputCmd (169)
12.2.11 库函数SPI_DataSizeConfig (170)
12.2.12 库函数SPI_TransmitCRC (170)
12.2.13 库函数SPI_CalculateCRC (170)
12.2.14 库函数SPI_GetCRC (170)
12.2.15 库函数SPI_GetCRCPolynomial (171)
12.2.16 库函数SPI_BiDirectionalLineConfig (171)
12.2.17 库函数SPI_I2S_GetFlagStatus (171)
12.2.18 库函数SPI_I2S_ClearFlag (172)
12.2.19 库函数SPI_I2S_GetITStatus (172)
12.2.20 库函数SPI_I2S_ClearITPendingBit (172)
思考与练习 (173)
第13章 I2C模块 (174)
13.1 I2C简介 (174)
13.1.1 功能描述 (175)
13.1.2 I2C从模式 (176)
13.1.3 I2C主模式 (177)
13.1.4 错误条件 (179)
13.1.5 SDA/SCL线控制 (180)
13.1.6 DMA请求 (180)
13.1.7 I2C的中断 (181)
13.2 I2C库函数说明 (182)
13.2.1 库函数I2C_DeInit (183)
13.2.2 库函数I2C_Init (183)
13.2.3 库函数I2C_StructInit (184)
13.2.4 库函数I2C_Cmd (185)
13.2.5 库函数I2C_ITConfig (185)
13.2.6 库函数I2C_DMACmd (186)
13.2.7 库函数I2C_SendData (186)
13.2.8 库函数I2C_ReceiveData (186)
13.2.9 库函数I2C_DMALastTransferCmd (186)
13.2.10 库函数I2C_GenerateSTART (187)
13.2.11 库函数I2C_GenerateSTOP (187)
13.2.12 库函数I2C_AcknowledgeConfig (187)
13.2.13 库函数I2C_OwnAddress2Config (187)
13.2.14 库函数I2C_DualAddressCmd (188)
13.2.15 库函数I2C_GeneralCallCmd (188)
13.2.16 库函数I2C_Send7bitAddress (188)
13.2.17 库函数I2C_ReadRegister (189)
13.2.18 库函数I2C_SoftwareResetCmd (189)
13.2.19 库函数I2C_SMBusAlertConfig (189)
13.2.20 库函数I2C_TransmitPEC (190)
13.2.21 库函数I2C_PECPositionConfig (190)
13.2.22 库函数I2C_CalculatePEC (190)
13.2.23 库函数I2C_GetPEC (190)
13.2.24 库函数I2C_ARPCmd (191)
13.2.25 库函数I2C_StretchClockCmd (191)
13.2.26 库函数I2C_FastModeDutyCycleConfig (191)
13.2.27 库函数I2C_GetLastEvent (191)
13.2.28 库函数I2C_CheckEvent (192)
13.2.29 库函数I2C_GetFlagStatus (192)
13.2.30 库函数I2C_ClearFlag (193)
13.2.31 库函数I2C_GetITStatus (193)
13.2.32 库函数I2C_ClearITPendingBit (194)
思考与练习 (194)
第14章 DMA控制器 (195)
14.1 DMA简介 (195)
14.2 DMA库函数说明 (199)
14.2.1 库函数DMA_DeInit (200)
14.2.2 库函数DMA_Init (200)
14.2.3 库函数DMA_StructInit (201)
14.2.4 库函数DMA_Cmd (202)
14.2.5 库函数DMA_ITConfig (202)
14.2.6 库函数DMA_GetCurrDataCounte (203)
14.2.7 库函数DMA_GetFlagStatus (203)
14.2.8 库函数DMA_ClearFlag (203)
14.2.9 库函数DMA_GetITStatus (203)
14.2.10 库函数DMA_ClearITPendingBit (204)
思考与练习 (204)
第15章 FSMC模块 (205)
15.1 FSMC简介 (205)
15.2 与非总线复用模式的异步16位NOR闪存接口 (207)
15.2.1 FSMC的配置 (207)
15.2.2 时序计算 (209)
15.2.3 硬件连接 (210)
15.2.4 从外部NOR闪存存储器执行代码 (211)
15.3 与非总线复用的16位SRAM接口 (211)
15.3.1 FSMC配置 (211)
15.3.2 时序计算 (212)
15.3.3 硬件连接 (213)
15.4 与8位的NAND闪存存储器接口 (213)
15.4.1 FSMC配置 (213)
15.4.2 时序计算 (215)
15.4.3 硬件连接 (217)
15.4.4 错误校验码计算 (217)
15.5 FSMC库函数说明 (218)
思考与练习 (219)
第16章 模数转换器模块 (220)
16.1 ADC简介 (220)
16.1.1 功能描述 (221)
16.1.2 自校准 (223)
16.1.3 可编程的采样时间 (224)
16.1.4 外部触发转换 (224)
16.1.5 双ADC模式 (225)
16.1.6 温度传感器 (226)
16.1.7 ADC的中断事件 (227)
16.2 ADC库函数说明 (227)
16.2.1 库函数ADC_DeInit (228)
16.2.2 库函数ADC_Init (228)
16.2.3 库函数ADC_StructInit (230)
16.2.4 库函数ADC_Cmd (231)
16.2.5 库函数ADC_ITConfig (231)
16.2.6 库函数ADC_DMACmd (231)
16.2.7 库函数ADC_ResetCalibration (232)
16.2.8 库函数ADC_GetResetCalibrationStatus (232)
16.2.9 库函数ADC_StartCalibration (232)
16.2.10 库函数ADC_GetCalibrationStatus (233)
16.2.11 库函数ADC_SoftwareStartConvCmd (233)
16.2.12 库函数ADC_GetSoftwareStartConvStatus (233)
16.2.13 库函数ADC_DiscModeChannelCountConfig (233)
16.2.14 库函数ADC_DiscModeCmd (234)
16.2.15 库函数ADC_RegularChannelConfig (234)
16.2.16 库函数ADC_ExternalTrigConvConfig (235)
16.2.17 库函数ADC_GetConversionValue (235)
16.2.18 库函数ADC_GetDuelModeConversionValue (235)
16.2.19 库函数ADC_AutoInjectedConvCmd (236)
16.2.20 库函数ADC_InjectedDiscModeCmd (236)
16.2.21 库函数ADC_ExternalTrigInjectedConvConfig (236)
16.2.22 库函数ADC_ExternalTrigInjectedConvCmd (237)
16.2.23 库函数ADC_SoftwareStartinjectedConvCmd (237)
16.2.24 库函数ADC_GetsoftwareStartinjectedConvStatus (237)
16.2.25 库函数ADC_InjectedChannleConfig (238)
16.2.26 库函数ADC_InjectedSequencerLengthConfig (238)
16.2.27 库函数ADC_SetInjectedOffset (238)
16.2.28 库函数ADC_GetInjectedConversionValue (239)
16.2.29 库函数ADC_AnalogWatchdogCmd (239)
16.2.30 库函数ADC_AnalogWatchdongThresholdsConfig (239)
16.2.31 库函数ADC_AnalogWatchdongSingleChannelConfig (240)
16.2.32 库函数ADC_TampSensorVrefintCmd (240)
16.2.33 库函数ADC_GetFlagStatus (240)
16.2.34 库函数ADC_ClearFlag (241)
16.2.35 库函数ADC_GetITStatus (241)
16.2.36 库函数ADC_ClearITPendingBit (241)
思考与练习 (241)
第17章 定时器模块 (243)
17.1 TIM简介 (243)
17.1.1 计数功能 (244)
17.1.2 时钟选择 (248)
17.1.3 捕获/比较通道 (250)
17.1.4 定时器同步 (261)
17.2 TIM库函数说明 (265)
17.2.1 库函数TIM_DeInit (268)
17.2.2 库函数TIM_TimeBaseInit (268)
17.2.3 库函数TIM_OC1Init (269)
17.2.4 库函数TIM_ICInit (270)
17.2.5 库函数TIM_BDTRConfig (271)
17.2.6 库函数TIM_TimeBaseStructInit (272)
17.2.7 库函数TIM_OCStructInit (273)
17.2.8 库函数TIM_ICStructInit (273)
17.2.9 库函数TIM_BDTRStructInit (274)
17.2.10 库函数TIM_Cmd (274)
17.2.11 库函数TIM_ITConfig (274)
17.2.12 库函数TIM_GenerateEvent (275)
17.2.13 库函数TIM_DMAConfig (275)
17.2.14 库函数TIM_DMACmd (276)
17.2.15 库函数TIM_InternalClockConfig (277)
17.2.16 库函数TIM_ITRxExternalClockConfig (277)
17.2.17 库函数TIM_TIxExternalClockConfig (278)
17.2.18 库函数TIM_ETRClockMode1Config (278)
17.2.19 库函数TIM_ETRClockMode2Config (279)
17.2.20 库函数TIM_ETRConfig (279)
17.2.21 库函数TIM_SelectInputTrigger (279)
17.2.22 库函数TIM_PrescalerConfig (280)
17.2.23 库函数TIM_CounterModeConfig (280)
17.2.24 库函数TIM_ForcedOC1Config (281)
17.2.25 库函数TIM_ARRPreloadConfig (281)
17.2.26 库函数TIM_SelectCOM (281)
17.2.27 库函数TIM_SelectCCDMA (281)
17.2.28 库函数TIM_CCPreloadControl (282)
17.2.29 库函数TIM_OC1PreloadConfig (282)
17.2.30 库函数TIM_OC1FastConfig (282)
17.2.31 库函数TIM_ClearOC1Ref (283)
17.2.32 库函数TIM_UpdateDisableConfig (283)
17.2.33 库函数TIM_EncoderInterfaceConfig (283)
17.2.34 库函数TIM_OC1PolarityConfig (284)
17.2.35 库函数TIM_OC1NPolarityConfig (284)
17.2.36 库函数TIM_CCxCmd (284)
17.2.37 库函数TIM_CCxNCmd (285)
17.2.38 库函数TIM_SelectOCxM (285)
17.2.39 库函数TIM_UpdateRequestConfig (285)
17.2.40 库函数TIM_SelectHallSensor (286)
17.2.41 库函数TIM_SelectOnePulseMode (286)
17.2.42 库函数TIM_SelectOutputTrigger (286)
17.2.43 库函数TIM_SelectSlaveMode (287)
17.2.44 库函数TIM_SelectMasterSlaveMode (288)
17.2.45 库函数TIM_SetAutoreload (288)
17.2.46 库函数TIM_SetCompare1 (288)
17.2.47 库函数TIM_SetIC1Prescaler (288)
17.2.48 库函数TIM_SetClockDivision (289)
17.2.49 库函数TIM_GetCapture1 (289)
17.2.50 库函数TIM_GetCounter (289)
17.2.51 库函数TIM_GetPrescaler (289)
17.2.52 库函数TIM_GetFlagStatus (290)
17.2.53 库函数TIM_ClearFlag (290)
17.2.54 库函数TIM_GetITStatus (291)
17.2.55 库函数TIM_ClearITPendingBit (291)
思考与练习 (291)
第18章 看门狗模块 (292)
18.1 独立看门狗简介 (292)
18.2 窗口看门狗简介 (293)
18.3 IWDG库函数说明 (295)
18.3.1 库函数IWDG_WriteAccessCmd (295)
18.3.2 库函数IWDG_SetPrescaler (296)
18.3.3 库函数IWDG_SetReload (296)
18.3.4 库函数IWDG_ReloadCounter (296)
18.3.5 库函数IWDG_Enable (296)
18.3.6 库函数IWDG_GetFlagStatus (297)
18.4 WWDG库函数说明 (297)
18.4.1 库函数WWDG_DeInit (297)
18.4.2 库函数WWDG_SetPrescaler (297)
18.4.3 库函数WWDG_SetWindowValue (298)
18.4.4 库函数WWDG_EnableIT (298)
18.4.5 库函数WWDG_SetCounter (298)
18.4.6 库函数WWDG_Enable (298)
思考与练习 (299)
第19章 μC/OS-Ⅱ操作系统概述 (300)
19.1 μC/OS-Ⅱ简介 (300)
19.2 实时系统概念 (300)
19.2.1 前后台系统 (301)
19.2.2 代码的临界段 (301)
19.2.3 任务 (301)
19.2.4 内核 (302)
19.2.5 调度 (303)
19.2.6 可重入型 (303)
19.2.7 不可剥夺型内核 (303)
19.2.8 可剥夺型内核 (303)
19.2.9 时间片轮番调度法 (304)
19.2.10 任务优先级 (304)
19.2.11 死锁 (304)
19.2.12 同步 (304)
19.2.13 任务间的通信 (305)
19.2.14 时钟节拍 (305)
19.2.15 临界段 (306)
19.3 内核结构 (306)
19.3.1 任务控制块 (306)
19.3.2 任务调度 (307)
19.3.3 给调度器上锁和开锁 (307)
19.3.4 空闲任务 (308)
19.3.5 统计任务 (308)
19.3.6 ?C/OS中的中断处理 (308)
19.3.7 时钟节拍 (309)
19.3.8 ?C/OS-Ⅱ初始化与启动 (309)
思考与练习 (309)
第20章 任务管理与通信 (310)
20.1 任务管理 (310)
20.1.1 建立任务 (311)
20.1.2 任务堆栈 (311)
20.1.3 删除任务 (311)
20.1.4 请求删除任务 (312)
20.1.5 改变任务的优先级 (312)
20.1.6 挂起任务 (313)
20.1.7 恢复任务 (313)
20.2 任务之间的通信 (313)
20.2.1 事件控制块 (313)
20.2.2 信号量 (315)
20.2.3 邮箱 (316)
20.2.4 消息队列 (318)
思考与练习 (320)
第21章 时间管理和内存管理 (321)
21.1 时间管理 (321)
21.1.1 任务延时函数 (321)
21.1.2 按时分秒延时函数 (322)
21.1.3 让处在延时期的任务结束延时 (322)
21.1.4 系统时间 (322)
21.2 内存管理 (323)
21.2.1 内存控制块 (323)
21.2.2 建立一个内存分区 (323)
21.2.3 分配一个内存块 (324)
21.2.4 释放一个内存块 (324)
21.2.5 查询一个内存分区的状态 (324)
21.2.6 等待一个内存块 (325)
思考与练习 (325)
参考文献 (326)
猜您喜欢