内容简介
本书以引导读者快速全面掌握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.
STM32F103x微控制器与μC/OS-Ⅱ操作系统 下载 mobi epub pdf txt 电子书 格式