新書推薦:
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
82.8
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
89.7
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
67.9
《
周易
》
售價:HK$
45.8
《
东南亚的传统与发展
》
售價:HK$
69.0
《
乾隆制造
》
售價:HK$
87.4
《
资治通鉴臣光曰辑存 资治通鉴目录(司马光全集)(全二册)
》
售價:HK$
296.7
《
明代社会变迁时期生活质量研究
》
售價:HK$
308.2
|
內容簡介: |
本书以引导读者快速全面掌握STM32F103x系列嵌入式微控制器为目的,由浅入深地带领读者走进嵌入式世界。本书共分为两部分:*部分以嵌入式基本概念为平台,介绍嵌入式微控制器各模块的使用方法、库函数,从简单的单模块知识到复杂的多模块应用,涵盖Cortex-M3体系结构、开发平台、复位和时钟控制器、NVIC和EXTI模块、GPIO模块、FSMC模块、模数转换器模块、通用定时器模块、通信模块等常用功能模块。第二部分主要介绍COS-Ⅱ操作系统的概念与应用,讲解COS-Ⅱ操作系统的内核、常用的系统服务等知识。本书注重理论知识和实践能力的结合,推荐初学者使用库函数设计嵌入式程序以避免复杂的寄存器操作。
|
關於作者: |
桂珺,男,沈阳工业大学教师,全国高等学校电子信息类专业教学指导委员会,协作委员。曾获得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.5ARM处理器简介(10)
1.5.1ARM处理器的进化过程(10)
1.5.2ARM处理器的开发工具(12)
1.6嵌入式系统的设计方法(13)
1.6.1嵌入式系统的总体结构(13)
1.6.2嵌入式系统设计过程(14)
1.6.3嵌入式系统的硬软件协同设计技术(15)
思考与练习(16)
第2章ARM Cortex-M3内部结构(17)
2.1Cortex-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.2STM32F1微控制器的系统结构(33)
3.3STM32F1微控制器的存储器结构与映射(34)
3.4STM32F1微控制器的嵌入式闪存(36)
3.5STM32F1微控制器的启动配置(37)
3.6STM32F1微控制器的电源控制(38)
3.7STM32F1微控制器的复位(39)
3.8STM32F1微控制器的调试端口(41)
思考与练习(41)
第4章建立MDK-ARM5.0开发平台(42)
4.1MDK-ARM简介(42)
4.2CMSIS标准简介(44)
4.3STM32标准外设库(45)
4.4安装MDK-ARM5.0(49)
4.5创建工程模板(52)
思考与练习(57)
第5章复位与时钟控制器(58)
5.1STM32F103x微控制器时钟模块简介(58)
5.1.1HSE时钟(60)
5.1.2HSI时钟(60)
5.1.3PLL(61)
5.1.4LSE时钟(61)
5.1.5LSI时钟(61)
5.1.6系统时钟的选择(62)
5.1.7时钟安全系统(62)
5.1.8RTC时钟(62)
5.1.9看门狗时钟(62)
5.1.10时钟输出(62)
5.1.11片上外设时钟(63)
5.2RCC库函数说明(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章IO端口模块(81)
6.1概述(81)
6.2GPIO库函数说明(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.3NVIC库函数说明(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.4EXTI库函数说明(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.2SysTick库函数说明(106)
思考与练习(106)
第9章实时时钟和备份寄存器(107)
9.1实时时钟简介(107)
9.2后备寄存器简介(111)
9.3RTC库函数说明(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.4BKP库函数说明(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.2FLASH库函数说明(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.1USART串口简介(137)
11.1.1功能概述(138)
11.1.2发送器(139)
11.1.3接收器(140)
11.1.4产生分数比特率(141)
11.1.5多处理器通信(142)
11.1.6LIN模式(143)
11.1.7USART同步模式(143)
11.1.8单线半双工(144)
11.1.9智能卡模式(145)
11.1.10红外模式(146)
11.1.11USART的中断请求(147)
11.2USART库函数说明(148)
11.2.1库函数USART_DeInit(149)
11.2.2库函数USART_Init(149)
|
內容試閱:
|
前 言
Cortex-M3是ARM公司2004年推出的基于ARM V7架构的新型微处理器内核,是市场上出现较早、功耗较低、普及程度较高的32位ARM处理器。Cortex-M3采用了新型的单线调试技术,拥有独立的指令总线和数据总线,并集成了必要的存储器和功能模块,降低了设计和应用的难度。STM32F103x系列嵌入式处理器是意法半导体有限公司(STMicroelectronics, ST 推出的一款32位基于ARM Cortex-M3内核的嵌入式微控制器,主要针对控制领域中的实时应用领域,具有较强的控制功能和一定的数字信号处理能力,除可用于传统8051系列微控制器的应用领域外,还可用于DSP处理器的领域。
本书以引导读者快速全面掌握STM32系列嵌入式处理器为目的,由浅入深地带领读者走进嵌入式世界。全书共分为两部分:第一部分以嵌入式基本概念为平台,介绍嵌入式微控制器各模块的使用方法、例程,从简单的单模块知识到复杂的多模块应用。第二部分主要介绍cos-Ⅱ操作系统的概念与应用。各章节内容安排如下:
第1章 简要介绍嵌入式系统的概念、特点、分类、结构以及常见嵌入式操作系统和嵌入式系统的设计方法。通过本章的学习,可使读者初步建立起嵌入式系统开发的整体框架和知识体系。
第2章 介绍Cortex-M3处理器体系结构,包括Thumb-2指令集、流水线技术、操作模式、寄存器配置、存储器结构、异常与处理等内容,帮助读者初步了解Cortex-M3处理器的整体架构。
第3~4章 介绍STM32F1系列微控制器结构及软件开发平台,包括STM32F1系列微控制器的系统结构、嵌入式闪存、启动配置及功率管理等。还介绍了MDK-ARM5.0开发平台。帮助读者在了解STM32F1微控制器的基本参数、重要特性的基础上,掌握Keil集成开发环境的应用方法。
第5~18章 介绍STM32F103x嵌入式系统各功能模块的功能、特性、使用方法及相关库函数。包括复位与时钟控制RCC模块、通用输入输出接口(GPIO)模块、中断模块、通用定时器模块、USART串口模块、模数转换器模块、系统节拍定时器模块、Flash存储器模块、SPI模块、DMA模块和FSMC模块等,使读者了解STM32F103x嵌入式系统各功能模块的编程方法。
第19~21章 介绍COS-Ⅱ嵌入式实时操作系统内核的相关知识。包括COS-Ⅱ实时操作系统的基本概念和内核结构、COS-Ⅱ任务管理、时间管理和内存管理的机制及COS-Ⅱ的使用方法。
本书适用于STM32F103x嵌入式处理器的初学者,可作为高等院校仪器仪表、电子信息、自动控制等专业嵌入式系统课程的教材,也可作为从事嵌入式系统应用开发工程师的参考资料。
本书由贾丹平编写第1~4、14章,桂珺编写第5~10章,刘博编写第15~16、18~21章,赵柏山编写第11~13章,徐耀松编写第17章。全书由桂珺负责规划、内容安排,贾丹平负责审阅校订。本书在编写过程中参考和借鉴了大量相关资料及网络资源,在此谨对这些作者表示衷心的感谢。
由于编者水平和经验所限,加之时间仓促,书中难免有疏漏和不妥之处,恳请各位老师及同行批评指正,并请您将阅读中发现的错误发送到:qianrushijiaocai@163.com。
|
|