STM32F0实战:基于HAL库开发
上QQ阅读APP看书,第一时间看更新

前言

意法半导体公司(下文简称意法公司)近年来在国内单片机市场上的业绩可圈可点,旗下STM32系列单片机凭借其高性能、高性价比成为32位单片机的市场主力,在如今的人才市场上,会不会使用STM8和STM32单片机往往是用人方选择硬件工程师的条件之一,其重要性和业界的影响力可见一斑。在意法公司的产品线中,STM32F0系列是32位微控制器中的入门级产品。该系列基于ARM公司的Cortex-M0内核,集实时性能、低功耗运算和STM32平台的先进架构及外设于一身,既保留了对传统8位和16位市场的压倒性竞争力,又可以传承STM32用户的开发平台和程序代码,是入门STM32开发的不二之选。本书将以STM32F0系列微控制器中的旗舰型号STM32F072VBT6微控制器为例,从整体架构、存储器、时钟树、异常处理、DMA和外设模块等方面做详细的介绍,特别是对微控制器片内的bxCAN模块和USB模块的原理和开发方法进行重点介绍。

学习ARM微控制器的方法其实与学习8位机并无两样,只要找准入门的方法就会事半功倍。在接触STM32F0系列的32位单片机之前,你一定也曾经是8位单片机的“发烧友”,回想当初我们使用8051单片机点亮一个LED时,那种激动的心情至今仍难以忘怀。在此笔者向大家推荐与当初学习8051单片机相同的方法,即从一个简单的实验入手,如点亮一个LED,由局部到整体,逐步积累开发经验,增强信心,循序渐进,由浅入深。要特别注意的是不要在你还没有学会使用寄存器和函数来操作STM32的时候,就贸然研究操作系统移植、图形用户界面(GUI)以及上位机开发等。这不但会让你对学习STM32望而却步,还会使你对学习嵌入式开发的信心丧失,这是最可怕的事情。本书不拘泥于概念和原理的探究,而是立足于实践,从系统板基础电路起步,一章一个例子、一章一个实验、一章一个总结、一个模块一套或多套代码,从最基本的I/O口学起,逐步拓展到定时器、时钟、串行口、ADC等,届时你会发现其实STM32与8位单片机也没有太大差别。

近期,意法公司专门针对旗下不同系列的微控制器产品推出了一款全新的开发软件——STM32CubeMX。该软件允许用户使用图形化界面简单直观地对目标微控制器的引脚、时钟等进行初始化设置,并能针对不同的集成开发环境,如EWARM、MDK-ARM、TrueSTUDIO等快速生成开发项目,这无疑是STM32入门用户最重大的利好消息。本书将利用STM32CubeMX作为项目建立和代码初始化工具,快速生成STM32F0系列微控制器的程序架构,并在MDK-ARM软件上对代码进行进一步的编辑修改,直至完成最终的项目开发。

作为STM32微控制器开发的新手,往往在从寄存器开发入手还是从固件库开发入手的选择上纠结不定。业界对开发STM32系列微控制器的方法通常也持有两种不同的观点:一种认为寄存器开发能使开发者明晰单片机内部结构,编写出简洁的代码,执行效率高;而另一种则认为固件库开发能避开对寄存器操作,减轻编程者的压力,还可以为开发者访问底层硬件提供一个中间应用编程界面(API),并方便上层软件的调用。笔者认为,作为开发STM32的硬件工程师,以上两种开发方法都应该掌握,原因是寄存器开发能加深对芯片内部结构和功能的理解,是微控制器入门的必经之路,而固件库开发则是一种趋势,它的编程思想更加先进,对应代码更规范,更具有可读性。本书基于STM32CubeMX软件自带的HAL库开发——HAL库不同于以往的标准外设库,是意法公司最新推出的替代标准外设库的产品,书内附HAL库、函数、结构、常量等的详细说明及开发实例。

为了配合本书的出版,相应的开发板和视频教程“STM32奇幻漂流记”也会在近期由“睿芯美微”淘宝网店同步推出,网址为http://shop59521455.taobao.com。由于作者水平有限,加之写作时间仓促,书中错误在所难免,在此恳请读者和有识之士给予批评斧正,也欢迎大家通过互联网与笔者分享STM32的开发心得。

作者QQ:710878209,微信号:gpmza2000。

本书得以出版,首先要特别感谢机械工业出版社华章公司朱捷等资深编辑,他们对本书的选题、立意和编纂给予了大力支持和悉心指导。其次要感谢的是广大热心网友,你们为本书内容、结构、写法献言献策,给予了莫大关心和支持。再次要感谢笔者的家人,在笔者奋笔疾书的日日夜夜照顾饮食起居,让笔者能更加专注于本书的创作。

尺有所短,寸有所长。每个人的天赋迥异,如果你发现自己对电子产业时常会萌发出一些新奇的想法或创意,请一定将其捕捉住,并且尽早阅读本书,那时你会发现使用STM32系列微控制器会让你的想法变为现实,会让你的创意尽情表达,这也许就是你走上研发之路的起点,你的人生也会因此而更加精彩!再次感谢你选择本书,祝学业有成,事业顺达!

高显生

于哈尔滨