STM32F系列ARM Cortex-M3核微控制器开发与应用(附光盘)
定 价:58 元
- 作者:喻金钱 ,喻斌 著
- 出版时间:2011/4/1
- ISBN:9787302244424
- 出 版 社:清华大学出版社
- 中图法分类:TP332.3
- 页码:496
- 纸张:胶版纸
- 版次:1
- 开本:16开
-
商品库位:
《STM32F系列ARMCortex-M3核微控制器开发与应用(附光盘)》从实际应用需求和开发过程中所遇到的问题出发,介绍了stm32f系列arm芯片内外设和各个 功能模块的应用。
《STM32F系列ARMCortex-M3核微控制器开发与应用(附光盘)》没有涉及有关芯片的存储结构系统构架、指令集等理论性的知识,而是从最基本的应用要求出发,结合大量实例,依托库函数,详细讲解i/o接口、异步串口、系统时基定时器、spi接口、rtc、看门狗、定时器、i2c接口、can接口和模数转化器等外设接口的使用方法。本书注重实际操作和开发中的细节,对在开发过程中容易出错的情况作出提醒,并与读者分享作者在实际开发中的一些经验和感?,为有单片机和c语言基础的读者打开了通向嵌入式开发的大门。
《STM32F系列ARMCortex-M3核微控制器开发与应用(附光盘)》可作为单片机爱好者的学习用书,也可作为嵌入式应用工程技术人员的学习和培训用书,同时可作为大学生学习单片机的教材。
单片机市场的规模越来越大,到2010年出货量在20G片左右。世界各大半导体公司纷纷亮出自己的得意之作,提供各具特色的器件和架构。意法半导体集团(ST)是世界第五大半导体公司,当前推出一个新的32位微控制器系列产品——STM32系列。该系列产品所用微处理器是ARM公司为高性能、低成本、低功耗的嵌入式应用专门设计的ARM?Cortex-M3内核。
由于各行各业对于单片机的要求在不断提高,处理器必须在不增加功耗的条件下,处理更多的任务。处理器间的互联也变得复杂,串口、USB、SPI、I2C、CAN等一系列的硬件接口一个都不能少。在软件上,应用程序的功能也在不断创新,要求有更高的运算速度,更强的实时能力,更炫的图形界面……STM32系列产品得益于Cortex-M3在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有这些功能都同时具有业界最优的功耗水平。这些性能的不断提高满足了业界对单片机的需求。许多曾经只能求助于高级32位处理器或DSP的软件设计,都能在STM32上运行得很顺畅。
本书根据笔者多年使用STM32的实际经验与体会,结合库函数,以实现其功能为主线,强调实例应用和开发调试过程的特点进行编写。本书并没有介绍每个寄存器的详细功能和具体使用(这在STM32F的技术手册中有详细的描述),而是通过对具体实例的讲解和剖析,结合厂家提供的固件库,简单轻松地实现所要达到的功能,让每一个工程师都能使用STM32F系列芯片,并能把这系列芯片的功能发挥到极致。只要会C语言,通过这本书的学习,读者不必去弄懂底层硬件结构,就能使用ARM,就可以很好地使用STM32F系列进行开发、调试工作。
本书主要内容
本书在编写过程中,强调实用、易用和有用。全书共分为三大部分,第1部分介绍开发平台和实验平台,这是后面学习的基础;第2部分介绍STM32F芯片的各个功能模块的特点、库函数,然后用具体的实例详细介绍如何使用这些库函数实现功能模块的不同应用;第3部分是基于STM32F常用系统设计的实例应用。
第1部分是本书的基础,需要熟练掌握,只有这样才可以有效提高开发效率,减少错误的发生。
第2部分是本书的重点,共有13章,分别介绍各个功能模块,这13章采用了相同的讲解模式,首先介绍该模块的功能,随即介绍能实现这些功能的库函数,最后用多个实例详细讲解如何使用这些库函数实现模块功能。该部分是本书最有特色的部分,也是读者最感兴趣的部分,其中讲解了LED灯驱动实例、流水灯实例、按键实例,串口发送数据实例,中断接收数据方式实例,串口队列实例、嘀嗒实例、实用按键实例、外部中断实例、中断嵌套实例、万年历实例、后备域数据读写实例、I2C与24C02通信实例、单通道ADC采样实例、温度采样实例、内部Flash读写实例、定时器简单定时实例、PWM输出实例、独立看门狗实例、窗口看门狗实例和CAN接口实例等二十多个实例。
第3部分是本书的提高部分,讲解了常用系统设计实例。这些实例在实际应用中经常遇到,本书详细讲解了其思路和逻辑方法,这也是本书的特色部分,包括GPS数据解析、NOR Flash数据储存方案和2.4G无线数据传输等高级应用。
通过使用本固件函数库,无须深入掌握细节,用户也可以轻松应用每一个外设。因此,使用本固件函数库可以大大减少用户的程序编写时间,进而降低开发成本。
本书以具体的功能实例为基础,引导读者分析实例并实现这些功能。在开发调试中,一步一步地解决问题、实现功能,并把一个复杂的问题划分成一个一个好解决的小问题,一个一个地解决,最后实现整个功能。这也是本书作者着力介绍的一种解决问题的方法。
读者定位
本书要求读者有基本的C语言基础,不需要有硬件方面的知识。通过本书的学习,可以让一个初学者很快进入到嵌入式开发的大门。
同时,本书可作为嵌入式应用工程技术人员的学习和培训用书,也可作为企业内部培训教材,当然如果作为大学单片机教材,也会起到事半功倍的教学效果。
如果您是一个单片机的入门者,那么这本书可以说是为您量身打造的。您只需要按照本书的编排顺序,一章一章地往后学,一个实例一个实例地理解和编写即可。本书后面的内容是以前面的内容为基础的,像堆积木一样,一点一点地把功能进行堆积。等您学完这本书,您就可以成为一个嵌入式的熟手了。
如果您是单片机方面的高手,想通过本书学习使用STM32系列的芯片,您只需要熟悉开发平台和实验平台,然后了解每个外设功能模块是如何初始化的即可。本书第3部分内容您也可以看看,或许能给您带来意想不到的收获。
本书配套资料
本书配套光盘中有书中各个实例的源代码,这些源代码都在实验板上验证通过。希望广大读者不要只是把源代码一烧了之,而是应该尝试自己编写这些软件,因为只有经过不断的实践,才能获得真知。
为了帮助广大读者更快地进入到嵌入式开发中,作者将提供与本书配套的实验板。当然读者也可以根据本书提供的原理图来自行搭建,或使用其他实验板,依据其硬件更改相应的实例代码。作者在此提供一个经过验证的可靠的硬件平台,是为了让读者能在开始时绕过硬件屏障,全心学习STM32F系列芯片功能外设。当读者掌握了这些技能后,依据本书中作者提供的板图尺寸和需注意的细节,完全可以设计出实现自己所需功能的、性能优异的电路板。
整个开发系统的搭建只需要一台PC、一个实验板、一条串口延长线即可,不需要昂贵的仿真器或下载器。
在本书的编写过程中,得到了家人的理解和大力支持,并得到了清华大学出版社钟志芳老师的大力支持,师荣老师对全书进行了辛苦的校对,在此一并表示感谢。
由于本书涉及的知识领域日新月异,加上作者水平有限及时间仓促,难免有差错和不足之处,希望广大读者批评指正。有任何建议和意见,可以和我联系,我的邮箱为tonda@126.com。
喻金钱
2011年1月
第1部分 基础篇
第1章 开发板硬件结构
1.1 电路原理图
1.2 原理图说明
1.2.1 电源电路
1.2.2 系统复位电路
1.2.3 时钟电路
1.2.4 jtag接口电路
1.2.5 串口电路
1.2.6 键盘电路
1.2.7 led?电路
1.2.8 i2c接口电路
1.2.9 adc电路
1.2.10 usb电路
1.2.11 can电路
1.2.12 语音采集和播放电路
1.2.13 spi接口电路
1.2.14 电动机驱动板接口电路
1.3 开发板元器件布局图
1.3.1 跳线器说明
1.3.2 硬件资源使用
第2章 编译开发环境的建立
2.1 下载和安装ewarm
2.2 ide界面简介
2.3 生成一个新项目
2.3.1 建立项目文件目录,复制公共文件
2.3.2 生成新的工作区
2.3.3 生成新项目
2.3.4 给项目添加文件
2.4 修改应用文件
2.5 配置项目选项
2.5.1 通用选项设置
2.5.2 c/c++编译器选项设置
2.5.3 assembler选项设置
2.5.4 output converter选项设置
2.5.5 linker选项设置
2.6 flash loader demo下载器介绍
2.7 力源stm32f的isp下载器
2.8 串口调试助手介绍
第2部分 应用篇
第3章 通用和复用功能i/o口
3.1 概述
3.1.1 通用i/o
3.1.2 单独的位设置或位清除
3.1.3 外部中断/唤醒线
3.1.4 复用功能
3.1.5 软件重新映射i/o复用功能
3.1.6 gpio锁定机制
3.1.7 输入配置
3.1.8 输出配置
3.1.9 复用功能配置
3.1.10 模拟输入配置
3.2 库函数
3.2.1 函数gpio_init
3.2.2 函数gpio_setbits
3.2.3 函数gpio_resetbits
3.2.4 函数gpio_writebit
3.2.5 函数gpio_write
3.2.6 函数gpio_readoutputdatabit
3.2.7 函数gpio_readoutputdata
3.2.8 函数gpio_readinputdatabit
3.2.9 函数gpio_readinputdata
3.3 i/o端口的外设映射
3.3.1 将osc32_in/osc32_out作为pc14/pc15端口
3.3.2 将osc_in/osc_out引脚作为pd0/pd1端口
3.3.3 can复用功能重映射
3.3.4 jtag/swd复用功能重映射
3.3.5 adc复用功能重映射
3.3.6 定时器复用功能重映射
3.3.7 usart复用功能重映射
3.3.8 i2c1复用功能重映射
3.3.9 spi1复用功能重映射
3.4 位运算
3.4.1 移位运算
3.4.2 按位与运算
3.4.3 按位或运算
3.4.4 取反运算
3.4.5 异或运算
3.5 i/o口输出实例1——控制led灯
3.5.1 实例要求
3.5.2 硬件基础
3.5.3 软件结构
3.5.4 实例代码
3.5.5 编译下载和调试
3.6 i/o口输出实例2——流水灯
3.6.1 实例要求
3.6.2 硬件基础
3.6.3 软件结构
3.6.4 实例代码
3.6.5 编译下载和调试
3.7 i/o口输入实例——按键输入1
3.7.1 实例要求
3.7.2 硬件基础
3.7.3 软件结构
3.7.4 实例代码
3.7.5 编译下载和调试
3.8 i/o口输入实例——按键输入2
……
第3部分 提高篇
附录a iar工程转mdk工程
附录b arm处理器:选择arm7还是cortex-m3