书籍详情
《轻松玩转ARMCortex-M4微控制器:基于KinetisK》[54M]百度网盘|亲测有效|pdf下载
  • 轻松玩转ARMCortex-M4微控制器:基于KinetisK

  • 出版社:北京航空航天大学出版社
  • 出版时间:2014-09
  • 热度:10183
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

  《轻松玩转ARM Cortex-M4微控制器:基于Kinetis K60》以野火K60开发板V2为实验平台,以K60的各个外设为主线,深入浅出地介绍了微控制器开发的各个步骤,重点强化嵌入式C语言、时序分析能力、寄存器配置思路、软件编程思想,力求让读者达到学一款微控制器而通各种微控制器的目的。
  《轻松玩转ARM Cortex-M4微控制器:基于Kinetis K60》配套的例程还包含一些拓展实例,书中虽然没涉及此部分内容,但拓展例程都具有实用的参考价值,尤其适合参加智能车比赛的同学使用。本书的例程都是基于寄存器开发的,对于有简单的C语言基础的读者即可轻松上手此书。如果对书中内容有任何疑问,可以到野火初学123论坛交流。

内页插图

目录

第1章 ARM嵌入式系统之路
1.1 嵌入式开发经验谈
1.2 嵌入式开发进阶预备知识
1.2.1 嵌入式C语言
1.2.2 编程思想
1.3 走近ARMCortex-M4
1.3.1 M4内核介绍
1.3.2 基于Cortex-M的CMSIS库
1.4 典型Kinetis系列微控制器简介
1.4.1 Kinetis简介
1.4.2 K60P144的引脚功能和硬件电路
1.4.3 Kinetis系列微控制器的编程介绍

第2章 GPIO小试牛刀
2.1 PORT端口控制和中断
2.1.1 PORT模块简介
2.1.2 PORT模块寄存器
2.1.3 PORT编程要点
2.1.4 PORT应用实例
2.2 GPIO通用I/O模块
2.2.1 GPIO模块简介
2.2.2 GPIO模块寄存器
2.2.3 GPIO编程要点
2.2.4 GPIO应用实例

第3章 串行通信的时序分析
3.1 UART串口通信
3.1.1 UART简介
3.1.2 串口时序分析
3.1.3 UART模块寄存器
3.1.4 UART应用实例
3.2 12C串行通信
3.2.1 12C简介
3.2.2 12C时序分析
3.2.3 12C模块寄存器
3.2.4 12C应用实例
3.3 SPI串行通信
3.3.1 SPI简介
3.3.2 SPI时序分析
3.3.3 SPI模块寄存器
3.3.4 SPI应用实例

第4章 时钟模块
4.1 MCG系统时钟模块
4.1.1 MCG系统时钟模块简介
4.1.2 MCG模块寄存器
4.1.3 MCG编程要点
4.2 WDOG看门狗定时器
4.2.1 看门狗定时器简介
4.2.2 WDOG编程要点
4.2.3 看门狗WDOG应用实例
4.3 Flex定时器FTM
4.3.1 FTM简介
4.3.2 FTM模块寄存器
4.3.3 FTM编程要点
4.3.4 FTM应用实例
4.4 LPTMR低功耗定时器
4.4.1 LPTMR简介
4.4.2 LPTMR模块寄存器
4.4.3 LPTMR应用实例
4.5 PIT周期中断定时器
4.5.1 PIT简介
4.5.2 PIT模块寄存器
4.5.3 PIT应用实例
……
第5章 模数转换
第6章 DMA直接内存访问
第7章 FIash
第8章 常用总线模块
第9章 SDHC
第10章 USB通信模块
参考文献

前言/序言

目前微控制器的性能越来越好,集成的模块也越来越多,内部自带的寄存器越来越多,整体的架构也越来越复杂,因此库开发成为微控制器开发的主流。通过库开发,可以在不了解微控制器底层寄存器配置的情况下,快速地玩转单片机的各个模块资源。本书的目的就是带领读者深入了解开发K60库的过程,最终达到灵活快速上手其他人的库,甚至自行开发属于自己的库的目的。

笔者作为一名老师,每年都接触到各种各样零基础的学生。初学者学习微控制器,主要会遇到以下几种困难:

看不懂Datasheet

目前市场上大部分的微控制器书籍虽然都讲解寄存器的配置,但寄存器的说明都不按普通Datasheet的格式去排版,也没有介绍如何看Datasheet,导致学生看不懂Datasheet。例如寄存器里灰色表示不可操作或者保留,w1c表示写入1就会清0而写入0是无效等,如果这些内容不加以说明,很多初学者就不知道原来有这么一回事。

看不懂时序图

微控制器总是需要使用特定的时序来与各种外部模块进行通信,时序图最能描述时序的细节。很多书仅讲解寄存器的配置,直接忽略了时序图的讲解。如果初学者在开发中遇到通信失败的问题,那是硬件问题还是寄存器配置问题呢?唯一的解决方法就是测时序(示波器或逻辑分析仪),判断时序是否正确。但如果连时序图都看不懂,又怎么能看懂测出来的时序呢?

看不懂代码

目前的C语言书基本上都是针对计算机系统的,几乎没有专门针对嵌入式系统的。而微控制器嵌入式的书几乎都仅局限于寄存器配置,其他必须的编程语言知识、编程思想几乎不讲。初学者不会无师自通,因此自然看不懂代码。

考虑到大部分的读者都缺乏嵌入式C语言的知识,本书的第1章就先给读者补充相关的嵌入式C语言知识。这些内容都是根据学生的问题和野火初学123论坛的网友咨询整理来的,相信大部分的读者都是第一次接触这些内容。

不懂调试

程序跑飞了,如何解决?单步调试、看调用栈,这些都是基本的调试技巧。虽然一般的教程都会介绍编译器创建工程的方法、工程设置的方法,但几乎都省略了编译器的调试工具介绍,似乎调试工具可有可无。虽然各个编译器的调试工具都大同小异,但初学者如果没接触过,则更需要学习调试工具来锻炼调试代码的能力。

不懂模块化编程

随着CPU资源的丰富和需求的提升,嵌入式软件的复杂性越来越高,因此对开发人员的程序架构要求也越来越高。目前市场上几乎没有嵌入式的书籍会谈及模块化、软件分层这些内容,而这些却往往是项目开发的最基本要求。

模块化编程最常用的就是头文件,而头文件有什么用?别说是初学者,哪怕是工程师也难以准确地了解头文件的使用。一般也仅仅知道是用于函数声明、变量声明这类的,却不知道头文件是不参与编译的,对内容是没有要求的,仅仅在预处理阶段把内容插入到包含该头文件的相应文件里。

初学者是一张白纸,是不懂模块化编程的,而嵌入式这类书就应该在例程中讲解相应的知识。

不懂软件编程思想

目前的嵌入式开发招聘,哪怕是不涉及Linux系统的纯单片机开发,一般也会注明会Linux系统者优先。原因就在于学习过Linux系统的人都会接触Linux系统分层的架构,了解应用层是如何通过硬件抽象层的API接口来调用硬件,学习设备注册(回调函数)、消息机制(队列)、线程机制(时间片)等思想,而这些思想都可以用在普通的单片机开发中。本书在编写代码的过程中已经融入了很多编程思想,例如按键的消息机制,状态机的思想,软件分层的思想等,力求让读者能够掌握常用的编程思想。

缺乏真正的项目经验

既然是初学者,那么缺乏项目经验是必然的。作为教程的作者,如果没有把项目经验讲出来,那么会让初学者错失了一个学习开发技巧的机会。例如项目开发中最常用的是定时按键扫描,而不是查询按键扫描,但几乎全部的教程都仅讲解查询按键扫描,笔者也是直到参与真正的公司项目时才了解到原来还有这样一种按键扫描方式。

不懂微控制器的内存分布

开发微控制器程序,如果连程序的内存存储位置都不知道,那么出现各种bug的时候都难以找出问题,因此嵌入式招聘的笔试面试几乎必考微控制器的内存分布。另外,目前市场上很多产品都是通过ISP或者IAP下载更新固件,或者动态从SD卡、nand Flash里加载代码映像到RAM里运行相应的程序,这些功能都需要开发者对微控制器的内存分布十分熟悉。即使是初学者,一时间难以消化这些知识,但在初学阶段也应该了解有这么一回事,在后续的开发中慢慢领悟。

初学者在学习微控制器开发的时候,之所以觉得微控制器很难学,实际上是因为大部分的微控制器教程往往忽略了讲解微控制器的基础知识,如同没学会走路就来学跑步那样。

本书采用IAR开发环境,全部例程都整合成代码库的形式,但目的不在于给读者简单地调用库,而是试图通过与读者一起编写代码库,介绍各种编程知识和思想,从而让读者在初学阶段就形成良好的编程习惯,具有良好的编程思想,进而让读者达到了解库的实现过程,快速地上手其他各种各样的代码库的目的。

本书以Kinetis系列K60微控制器外围模块为轴线,从简单的GPIO点亮LED来了解K60的编程步骤,到GPIO按键的定时扫描了解按键消息机制,再到UART、I2C、SPI的时序分析学会看时序图、接着到系统时钟的设置和定时器的使用来熟悉微控制器的时钟模块,再学习模数转换模块、DMA模块、Flash模块、CAN总线、外部总线flexbus、SDHC总线和USB总线等各种模块,从易到难逐步推进,中间补充各种相关的拓展知识,从而让读者熟悉库开发的各个细节。

配套资料

书配有全部案例的开发工具、完整源程序、数据手册、原理图,读者可到北京航空航天大学出版社网站(www.buaapress.com.cn)的“下载专区”免费下载。

致谢

首先,感谢野火初学123论坛的网友,他们不断地反馈使得本书的内容更加充实,更能解答初学者的疑惑。其次要感谢陈杏飞等人提供的翻译、对书稿内容的校正和建议。

由于本书内容涉及的知识面广,时间又仓促,限于笔者的水平和经验,疏漏之处在所难免,欢迎各位工程师、老师和读者批评指正,可以发邮件到minimcu@foxmail.com与作者进行交流,或者登录野火初学123论坛http://www.chuxue123.com进行讨论。

王日明廖锦松

2014年8月