本书结构合理,内容系统全面,从嵌入式系统概述、ARM CortexM3微处理器、ARM CortexM3开发工具和环境、STM32基础入门等方面介绍了嵌入式系统的原理与具体应用,可作为高等院校计算机专业、电类专业、自动化以及机电一体化专业本科生的教材和参考书,也可供希望了解和掌握嵌入式系统的技术人员学习参考。
ARM微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等市场,而本书介绍的CortexM3处理器是ARM公司推出的首款基于ARMv7M架构的处理器,十分具有代表性。本书结构合理,内容系统全面,从嵌入式系统概述、ARM CortexM3微处理器、ARM CortexM3开发工具和环境、STM32基础入门等方面介绍了嵌入式系统的原理与具体应用,可作为高等院校计算机专业、电类专业、自动化以及机电一体化专业本科生的教材和参考书,也可供希望了解和掌握嵌入式系统的技术人员学习参考。
采用ARM技术知识产权(IP)的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类市场,基于ARM技术的微处理器应用占据了32位RISC微处理器90%以上的市场份额,ARM技术正在逐步渗入我们生活的各个方面。 ARM已成为嵌入式的代名词,学习嵌入式就是学习ARM。 ARM Cortex系列提供了一个标准的体系结构来满足以上各种技术的不同性能要求,其包含的处理器是基于ARMv7架构的三个分工明确的部分。A部分面向复杂的尖端应用程序,用于运行开放式的复杂操作系统;R部分针对实时系统;M部分为成本控制和微控制器的应用提供优化。 面对丰富多彩的嵌入式世界,我们该如何选择学习的内容与形式呢? ARM公司1985年开发出全球第1款商业 RISC 处理器,ARM7于1993年推出,之后还有ARM9、ARM11,得到大量运用。2004年开始推出更新的ARM Cortex-M3、A8、A9、A15,取代ARM7、ARM9、ARM11,广泛运用在嵌入式领域中。 Cortex-M3是首款基于ARMv7-M架构的处理器,是行业领先的 32 位处理器,适用于具有高确定性的实时应用,是专门为了在微控制器、汽车车身系统、工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域实现高系统性能而设计的,它大大简化了编程的复杂性,使ARM架构成为各种应用方案(即使是简单的方案)的上佳选择。 因此我们可以先开始学习ARM Cortex-M3,它取代8位/16位单片机和ARM7已经成为必然;接下来还可以进一步选择学习ARM9或者ARM Cortex-A8。 为了更好地进行嵌入式教学,我们应该积极动手实践,可以自己设计制作一块基于ARM CortexM3的STM32实验/开发板。 笔者于2010年3月设计了基于STM32F103VBT6的AS05型STM32SS实验板,2013年9月又设计了基于STM32F103VET6的AS07型STM32 ARDUINO实验板,用于自己的学习与教学中。如果有需要本教材中的实验/开发板和程序,请与作者联系。 笔者2011年9月编写了本书初稿,经过7年的教学实践,逐步修改完善。
第1章嵌入式系统概述(1)
1.1嵌入式系统的定义(3)
1.1.1嵌入式系统的定义(3)
1.1.2嵌入式系统的结构与组成(4)
1.1.3嵌入式系统的发展与趋势(5)
1.2ARM公司与ARM处理器(6)
1.2.1英国ARM公司(6)
1.2.2ARM微处理器(7)
1.2.3ARM典型微处理器简介(10)
1.3思考与练习(13)
1.4课外阅读(13)
第2章ARM CortexM3微处理器 (14)
2.1ARM CortexM3概述(14)
2.1.1ARM的CortexM3核心内嵌闪存和SRAM(16)
2.1.2内置闪存存储器(18)
2.1.3CRC(循环冗余校验)计算单元(18)
2.1.4内置SRAM(19)
2.1.5FSMC(可配置的静态存储器控制器)(19)
2.1.6LCD并行接口(19)
2.1.7嵌套的向量式中断控制器(NVIC)(19)
2.1.8外部中断/事件控制器(EXTI)(19)
2.1.9时钟和启动(20)
2.1.10自举模式(21)
2.1.11供电方案(21)
2.1.12供电监控器(21)
2.1.13电压调压器(21)
2.1.14低功耗模式(22)
2.1.15DMA(22)
2.1.16RTC(实时时钟)和后备寄存器(22)
2.1.17定时器和看门狗(23)
2.1.18I2C总线(24)
2.1.19通用同步/异步收发器(USART)(24)
2.1.20串行外设接口(SPI)(25)
2.1.21I2S(芯片互联音频)接口(25)
2.1.22SDIO(25)
2.1.23控制器区域网络(CAN)(25)
2.1.24通用串行总线(USB)(25)
2.1.25通用输入/输出接口(GPIO)(26)
2.1.26ADC(模拟/数字信号转换器)(26)
2.1.27DAC(数字/模拟信号转换器)(26)
2.1.28温度传感器(26)
2.1.29串行单线JTAG调试口(SWJDP)(26)
2.1.30内嵌跟踪模块(ETM)(27)
2.2STM32F103xx引脚定义(27)
2.2.1引脚分布图(27)
2.2.2STM32F103xx引脚定义(27)
2.3存储器映像(29)
2.4I/O端口静态特性(31)
2.5订货代码(32)
2.6思考与练习(33)
目录嵌入式系统原理与实践基于CortexM3(STM32)(上册)第3章ARM CortexM3开发工具和环境(34)
3.1软件开发环境(34)
3.1.1RealView MDK的安装(34)
3.1.2STM32下载编程软件Flash Loader 的安装(36)
3.1.3STM32硬件仿真器驱动程序的安装(36)
3.1.4USB转串口驱动的安装(37)
3.1.5蓝牙硬件和软件的安装(43)
3.2STM32实验板(44)
3.2.1STM32最小系统板(44)
3.2.2Nucleo实验板(44)
3.2.3AS07型STM32实验板(46)
3.2.4ST官方STM3210EEVAL评估板(52)
3.3ST的库函数(53)
3.3.1ST的库函数的版本(53)
3.3.2ST的V2.0.1库函数(53)
3.3.3ST的V2.0.1库函数的工程模板和范例程序(54)
3.3.4ST的V2.0.3库函数(60)
3.3.5ST的V2.0.3库函数的工程模板和范例程序(60)
3.3.6ST的V3.0.0库函数(60)
3.3.7ST的V3.0.0库函数的工程模板和范例程序(61)
3.3.8ST的V3.5.0库函数(62)
3.3.9ST的V3.5.0库函数的工程模板和范例程序(62)
3.4思考与练习(63)
第4章STM32基础入门 (64)
4.1GPIO的结构及编程应用(64)
4.1.1GPIO概述(64)
4.1.2GPIO寄存器(65)
4.1.3GPIO库函数(69)
4.1.4复用功能I/O(AFIO)和调试配置(71)
4.1.5AFIO寄存器(72)
4.1.6GPIO编程应用(73)
4.2STM32的实验过程(86)
4.2.1新建工程(86)
4.2.2编写源程序并添加到该工程中(93)
4.2.3编译、链接、调试源程序(98)
4.2.4仿真、调试程序,下载并运行验证程序(104)
4.2.5使用ST库函数范例和工程模板编程应用(117)
4.3STM32的复位与时钟(117)
4.3.1STM32的复位(117)
4.3.2STM32的时钟(117)
4.3.3RCC寄存器(119)
4.3.4RCC库函数(124)
4.3.5RCC编程应用(126)
4.4STM32的中断和事件(137)
4.4.1嵌套向量中断控制器(137)
4.4.2外部中断/事件控制器(EXTI)(140)
4.4.3NVIC和EXTI库函数(140)
4.4.4中断编程应用(145)
4.5STM32的串口通信USART(158)
4.5.1USART概述(159)
4.5.2USART寄存器(160)
4.5.3USART库函数(161)
4.5.4USART编程应用(162)
4.6思考与练习(166)