温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于ARM
Cortex-M3的STM32系列嵌入式微控制器应用实践
基于
ARM
Cortex
M3
STM32
系列
嵌入
式微
控制器
应用
实践
工作导向创新实践教材 基于 ARM Cortex-M3 的 STM32 系列嵌入式微控制器应用实践 彭 刚 秦志强 编著 Publishing House of Electronics Industry 北京BEIJING 武汉原创嵌入式培训中心深圳市鸥鹏科技有限公司审校 内 容 简 介 本书介绍了意法半导体(STMicroelectronics,ST)公司的 32 位基于 ARM Cortex-M3 内核的 STM32 单片机应用与实践。通过“学中做、做中学”,即 DIY(Do It Yourself)和 LBD(Learning By Doing)的方式,按照工作导向的思路展开教学与实践学习,循序渐进地介绍和构建若干典型 STM32 单片机应用系统的硬件和软件,以及相关传感器电路,将 STM32 单片机的外围引脚特性、内部结构原理、片上外设资源、开发设计方法和应用软件编程等知识传授给学生,对传统的教学方法和教学体系进行创新,力求解决嵌入式系统课程抽象与难学的问题。全书通俗易懂、内容丰富,可作为高等本科院校和职业技术学院的计算机、电子信息、自动化、电力电气、电子技术及机电一体化等相关专业的“32 位高级单片机原理与应用”、“基于 ARM Cortex 内核的单片机系统开发”等课程的教材和教学参考书,也可以作为工程实训、电子制作与竞赛的实践教材和实验配套教材,同时还可以供广大从事自动控制、智能仪器仪表、电力电子、机电一体化等系统开发和设计的工程技术人员、教师或者个人参考自学使用,并可作为 ARM 相关应用与培训课程的参考书。如需本书配套的 STM32 微控制器教学实验开发板及各种器件可与深圳市鸥鹏科技有限公司()联系。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践/彭刚,秦志强编著.北京:电子工业出版社,2011.1 工作导向创新实践教材 ISBN 978-7-121-12373-3 .基 .彭 秦 .微控制器高等学校教材 .TP332.3 中国版本图书馆 CIP 数据核字(2010)第 226882 号 策划编辑:田领红 责任编辑:田领红 特约编辑:徐 岩 印 刷:北京东光印刷厂 装 订:三河市鹏成印业有限公司 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871092 1/16 印张:22 字数:563 千字 印 次:2011 年 1 月第 1 次印刷 印 数:4 000 册 定价:45.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。前 言“工作导向创新实践教材”系列丛书自 2007 年 12 月出版以来,得到了许多高等本科院校和职业技术学院的关心与厚爱,在此感谢所有使用过此系列丛书的读者。工作导向的概念,不只是一个简单的概念游戏,而是包含了深刻的哲理。学习的目的,特别是对于未来想从事工程师职业的学生而言,不仅仅是学习某一个知识体系,如单片机的知识体系或者 C 语言的知识体系,而是应该更进一步,是要获得如何利用这些知识去解决实际工程问题的能力,也就是动手实践能力。论工程教育的科学主导与工程回归(秦志强著,高等工程教育研究,2005 年 5 期)一文中指出:抽象的“道”(知识)必须与实际的系统结合,才能发挥其作用。本书两位作者经与多位企业经理探讨,总结出图 1 所示的“嵌入式与电子工程师能力与素质培养体系架构图”。综合工程能力与素质 工程素质 创新能力 实践能力 系统的嵌入式系统认识论与方法论 典型工程对象 面向多行业 的典型产品 来自企业的 工程产品对象(控制器、智能家居、电机和电源、手机、PDA、机顶盒、点菜(歌)机、地图导航、医疗仪器、汽车电子、安防监控、机器人等)创新的 教学模式 将理论课与实验课融为一体的 创新教材 将理论课与实验课融为一体的 实训授课模式 由具有丰富实践经验的双师型 教师主讲、指导 创新的 实践模式 软硬一体的 实践项目设置 按项目管理流程 制订教学计划 企业化的 项目管理模式 岗位素质 就业指导讲授 职业岗位 ARM 嵌入式 开发工程师 单片机与硬件 测试工程师 嵌入式软件 开发工程师嵌入式技术 支持工程师 EDA 集成电路设计工程师 Linux 系统高级研发工程师 DSP 变频器电机控制工程师 嵌入式 Linux 开发工程师 嵌入式产品 销售工程师 DSP 视频音频开发工程师 图 1 嵌入式与电子工程师能力与素质培养体系架构图 传统的嵌入式系统教材,基本上都是为了给学生建立知识体系,教学的结果却是不仅知识体系建立不起来,动手能力就更不用提了。工程师是为了解决问题,这种解决问题的能力只有从实践中才能获得。同时,单纯的实践也无法获得真正的能力,关键是如何从实践的经验和体会中,归纳出共性的知识,建立起知识体系,然后再将这些知识重新应用到新的实践中去。这也是当今的大学生要在未来的实际工作(无论是在企业研发还是在高校做研究)中所必须采取的学习和工作方法。因此,如何在大学三年或者四年中,掌握这种自我学习和提高的方法,是高等教育和工程教育改革的根本目的。而相应教材的编写,就是应该按照这种在未来的实际工作中学习和工作的方法来编写。做到了这一点,才是真正实践了工作导向的哲学理念:实践、归纳、总结和再实践。因此,在使用“工作导向创新实践教材”系列丛书时,可以围绕典型的“工程对象或产品”,采用“基于工作过程”的教学法,按照“任务驱动实践归纳总结再实践”的教学模式进行教学,打破“讲课+实验”的传统教学模式,使学生在“学中做、做中学”,这样才能归纳、理解、总结出共性的知识,并建立起某个领域的知识体系。单片机和 C 语言是目前嵌入式技术、计算机技术、电子信息、自动控制、工业电气、机电一体化等工程教育中最为基本,也是最为核心的课程。要学会利用单片机和 C 语言去解决实际问题,掌握核心知识和技能,单单靠一两本好的教材是无法实现的。学习基于 ARM Cortex-M3内核的 32 位 STM32 单片机,对于单片机和 C 语言基础较弱的同学或者个人而言,也许会感觉比较困难。这时建议你先学习和实践本系列教材的 C51 单片机应用与 C 语言程序设计 或 单片机嵌入式系统编程与接口设计。掌握好编程的基本思路和方法,并了解单片机的输入和输出接口特性,然后再使用本教材学习。同时,系列教材还有AVR 单片机与小型机器人制作和基于 ARM 的嵌入式实时系统设计与实践。对于同样的项目和课题,采用了不同的微控制器或微处理器去实现,让你能够从中掌握和理解分析问题和解决问题的根本方法,让教师和同学可以根据教学安排和自己的需要选择硬件平台。只有学习完单片机和 C 语言并已经很好地掌握其中的知识点,才有可能进一步学习 ARM、Linux 等高级嵌入式课程。为此,在这套“工作导向创新实践教材”系列丛书中,形成从电子技术和 C 语言基础入门,到 8 位 AVR 或者 51 单片机,再到 16 位单片机和 DSP,最后到 32位 ARM、Linux 和 Windows Embedded 等高端嵌入式系统的系列化教材,让同学们可以从一个没有任何基础的学生循序渐进成长为可以进行复杂嵌入式系统设计和开发的工程师。本教材可作为具有单片机和 C 语言基础的大学三年级以上学生学习用书,还可以供其他希望学习嵌入式系统设计的工程师和爱好者使用。因为是工作导向,我们以两轮小型移动机器人的构思(Conceive)、设计(Design)、实施(Implement)、运行(Operate)为典型项目,所以每套教材最好配套相应的硬件设备方能达到最佳的教学和学习效果。一些拓展项目需要用到电子元器件和传感器,详细的清单可参考本书最后的附录。从我接触 ARM 开始,就非常喜欢这个嵌入式处理器,从 ARM7,到 ARM9 和 ARM11,以及后来的 ARM Cortex,并切身参与和体会到 ARM 技术在我们身边的应用:消费电子、手机、工业测控、机器人控制、汽车电子、智能家居、物联网、无线传感器网络、医疗电子和航空航天系统。2008 年暑期,在华中科技大学召开的嵌入式技术研讨会上,时任 ARM中国总裁谭军博士与笔者交流了 ARM Cortex 内核在 MCU 方面的应用情况,笔者感觉到这个内核的广阔前景,因为越来越多的 MCU 应用对信号采集、人机界面、通信接口提出了更高的要求。这些年越来越多地发现:大多数学习 ARM 处理器的学生或者个人上手较困难。个人感 觉其中一个原因可能是 ARM 嵌入式处理器将内部总线分为不同速度总线:AHB 和 APB,即高速的系统总线和慢速的外设总线,其实这相当于 PC 主板中的北桥芯片所外接的高速系统总线和南桥芯片所接的外设总线。基于 ARM Cortex 内核的 MCU 内部结构与普通的 8/16 位单片机在系统结构上最大的区别就在这里。一般的单片机只有 1 个系统时钟频率,而基于 ARM Cortex 的 MCU 可以给内核和不同外设模块提供不同的时钟频率,加上片内各种外设众多(集成度高),于是多了很多在普通的 8/16 位单片机领域中没有的内容(如 DMA 等),造成了难学的局面。笔者建议读者可以先尝试简单了解一下 ARM7 或 ARM9 的体系结构,毕竟 Cortex 内核是基于 ARMv7 的,而 ARM7 嵌入式处理器使用的是 ARMv4,ARM9 嵌入式处理器使用的是 ARMv4 或者 ARMv5 体系结构,ARM10 嵌入式处理器使用的是 ARMv5,ARM11 嵌入式处理器使用的是 ARMv6 体系结构,因此,ARM Cortex 内核要先进和复杂些。为了降低学习难度,本书各章节在讲述具体内容时,以任务为驱动,通过“学中做、做中学”,即 DIY(Do It Yourself)和 LBD(Learning By Doing)的方式,介绍和讲解所需要用到的新知识、新技能,按照认识论的规律学习和掌握基于 ARM Cortex-M3 内核的 STM32 单片机技术及其应用编程。有别于数据手册式的教材,本书将 ARM Cortex-M3 内核介绍、STM32 单片机的内部结构等原理性的内容列出在附录中,各个章节也没有繁冗的寄存器说明(参见 ST 公司网页上的数据手册或本书配套资料),旨在突出重点。每章都有一些读者可能在学习过程中涉及到的相关知识的讲解,希望读者能掌握一些背景知识,并且最后都有工程素质和技能归纳,启发学生进行知识的归纳和系统化。同时,附录中也对 STM32 单片机原理性的内容做了进一步的解释和归纳,其内容很重要,务必引起注意。无论是大学本科还是高职院校,都可以采用本教材,具体的教学安排完全可以根据学校原有的教学计划,只是上课的方式要进行调整,不必再单独开设理论和实验课程,项目拓展课程可以根据每个学校的情况灵活设置,没有必要统一。老师可在教学过程中增加一系列竞赛环节,使整个教学和学习过程充满挑战和乐趣,提高学习效果,并培养每个学生的理论联系实际、科学主导工程的系统世界观和方法论。另外,书中各章有关内容有意将中文和英文进行对照,同时部分表格采用英文(参考芯片英文数据手册),一是为了让读者准确知道其含义,并掌握一定的嵌入式系统专业术语;二是希望读者在编程时不要用“汉语拼音”来定义变量和函数名,养成良好的编码风格,毕竟程序是用英文写的。本书例程文件名以及代码也是如此。在帮助读者循序渐进地掌握 STM32 单片机原理与应用的同时,笔者也希望通过这种“任务驱动”的方式,引导读者了解如何去探索并学习新的技术,可能是你在学校里没有学到的,因为在这个技术发展迅速的世界,今后你自己可能会接触到各种最新的技术,资料是中文或英文的。这样做也是作为老师的一份责任:不仅仅授人以鱼,更要授人以“渔”。