前 言
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月