图书简介:
目 录第1章 STM32 MCU简介 11.1 STM32 MCU结构 11.2 STM32 MCU存储器映象 31.3 STM32 MCU系统时钟树 41.4 Cortex-M3简介 9第2章 通用并行接口GPIO 122.1 GPIO结构及寄存器说明 122.2 GPIO设计实例 142.2.1 直接操作寄存器软件设计 142.2.2 使用库函数范例程序(V2.0.1) 292.2.3 用GPIO控制LCD 37第3章 通用同步/异步收发器接口USART 443.1 UART简介 443.2 USART结构及寄存器说明 463.3 USART设计实例 503.3.1 USART基本功能程序设计 503.3.2 与计算机通信程序设计 513.3.3 用printf()实现通信程序设计 56第4章 串行设备接口SPI 584.1 SPI结构及寄存器说明 584.2 SPI设计实例 614.2.1 SPI基本功能程序设计 624.2.2 SPI环回程序设计 634.2.3 用SPI控制LCD 65第5章 定时器TIM 685.1 TIM结构及寄存器说明 685.2 TIM设计实例 755.2.1 1s定时程序设计 755.2.2 矩形波输出程序设计 785.2.3 矩形波测量程序设计 79第6章 模/数转换器ADC 826.1 ADC结构及寄存器说明 826.2 ADC设计实例 886.2.1 用ADC1规则通道实现外部输入模拟信号的模数转换 896.2.2 用ADC1注入通道实现内部温度传感器的温度测量 91第7章 内部集成电路总线接口I2C 947.1 I2C结构及寄存器说明 947.2 I2C设计实例 987.2.1 24C32A简介 987.2.2 24C32A程序设计 997.2.3 24C32A程序应用 101第8章 嵌套向量中断控制器NVIC 1048.1 NVIC简介 1048.2 EXTI中断 1088.3 USART中断 1118.4 TIM中断 1128.5 ADC中断 113第9章 直接存储器存取DMA 1159.1 DMA简介 1159.2 USART的DMA操作 1189.3 TIM的DMA操作 1199.4 ADC的DMA操作 120第10章 实时钟系统设计 12210.1 系统结构 12210.2 程序设计 12410.2.1 实时钟程序设计 12410.2.2 按键和显示程序设计 12610.2.3 系统程序设计 13210.3 程序实现 133附录A 开发板简介 136附录B 调试器简介 144附录C ASCII码表 146附录D C语言运算符 147附录E 实验指导 148实验1 设计入门 148实验2 LCD实验 149实验3 USART实验 150实验4 SPI实验 152实验5 TIM实验 154实验6 ADC实验 156实验7 I2C实验 158实验8 中断实验 159实验9 DMA实验 160实验10 实时钟实验 161参考文献 162
展开
前 言ARM Cortex-M3处理器树立了全球微控制器的标准,40多个ARM合作伙伴已获得这些处理器的使用许可,其中包括STMicroelectronics、NXP Semiconductors、Texas Instruments和Toshiba等领先供应商。通过采用标准处理器,ARM合作伙伴可制造出具有统一架构的设备,同时能够专注于各自差异化的设计,帮助开发人员满足不同的嵌入式应用需要。STM32系列32位Flash MCU是STMicroelectronics开发的基于ARM Cortex-M3系列的MCU,包括一系列32位产品,具有高性能、实时功能、数字信号处理、低功耗与低电压操作特性,同时还保持了集成度高和易于开发的特点。本书以STM32系列32位Flash MCU为例,以“一切从简单开始”为宗旨,以直接操作寄存器为设计方法,介绍ARM Cortex-M3系统的设计与实现。全书分为10章,从一个简单的嵌入式系统设计开始,依次介绍SysTick和GPIO,USART、SPI和I2C等串行接口,TIM和ADC等片内设备,以及NVIC和DMA的结构和设计实例,最后以实时钟系统设计为例介绍STM32 MCU系统的设计与实现。第1章简单介绍STM32 MCU和SysTick的结构,第2章在简单介绍GPIO结构的基础上,以一个简单的嵌入式系统设计为例详细介绍SysTick和GPIO的应用设计。简单系统以自制简单实验系统为硬件平台,软件设计采用直接操作寄存器和使用库函数两种方法,在直接操作寄存器软件设计中详细地介绍了用Keil新建工程、新建添加C语言源文件、生成目标程序文件、调试和运行目标程序的方法和步骤,在使用库函数软件设计中对两种方法进行了比较。最后介绍了用GPIO控制LCD的程序设计和实现方法。第3、4、7章分别介绍USART、SPI和I2C等串行接口的结构和设计实例。USART是最常用的串行接口,设计实例实现了MCU与计算机的串行通信。SPI的编程操作和USART相似,设计实例实现了SPI的环回和用SPI控制LCD。I2C的编程操作相对复杂一些,设计实例实现了通过I2C读写2线串行EEPROM。第5、6章分别介绍TIM和ADC的结构和设计实例,TIM设计实例实现了1s定时程序设计、矩形波输出程序设计和矩形波测量程序设计等,ADC设计实例用ADC规则通道实现了外部输入模拟信号的模数转换和用ADC注入通道实现内部温度传感器的温度测量等。第8、9章分别介绍NVIC和DMA的结构和设计实例。中断和DMA是高效的数据传送控制方式,对前面介绍的接口和设备数据传送查询方式稍做修改即可实现中断功能,再结合DMA可以实现数据的批量传送。第10章以实时钟系统设计为例介绍STM32 MCU系统的设计与实现,包括系统结构、程序设计和程序实现等。本书所有设计程序均为原创,并在自制硬件和Keil 4.12环境下测试通过。由于作者水平所限,书中难免会有不妥之处,敬请广大读者批评指正。作者联系方式:E-mail:cortex_m3@126.com。 编者 2013年10月
展开