本帖最后由 正点原子运营 于 2022-2-28 11:23 编辑
1)实验平台:正点原子STM32MP157开发板
2) 章节摘自【正点原子】《STM32MP1 M4裸机CubeIDE开发指南》
3)购买链接:https://item.taobao.com/item.htm?&id=629270721801
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/arm-linux/zdyzmp157.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子STM32MP157技术交流群:691905614
第一章 本书学习方法
为了让大家更好的学习和使用本书,本章将给大家介绍一下本书的学习方法,包括:本书的学习顺序、编写规范、代码规范、资料查找、学习建议等内容。 本章将分为如下几个小节: 1.1、本书学习顺序; 1.2、本书参考资料; 1.3、本书编写规范; 1.4、本书代码规范; 1.5、例程资源说明; 1.6、学习资料查找; 1.7、给初学者的建议;
1.1 本书学习顺序为了让大家更好的学习和使用本书,我们做了以下几点考虑: 1,坚持循序渐进的思路编写,从基础到入门,从简单到复杂。 2,将知识进行分类介绍,简化学习过程,包括:基础篇、入门篇、提高篇。 3,将硬件介绍独立成一个文档:《【正点原子】STM32MP157开发板硬件参考手册V1.0.pdf》,本书着重介绍软件知识。 因此,大家在学习本书的时候,我们建议:先通读一遍《【正点原子】STM32MP157开发板硬件参考手册V1.0.pdf》,对开发板的硬件资源有个大概了解,然后从头开始,尽量不要跳着阅读,循序渐进,逐一攻克。 对初学者来说,尤其要按照本书章节顺序学习,不要跳跃式学习,因为我们书本的知识都是一环扣一环的,如果前面的知识没学好,后面的知识学起来就会很困难。 对于已经学过STM32的朋友来说,就可以跳跃式学习了,当然如有不懂,也得翻阅前面的知识点进行巩固。 1.2 本书参考资料本书的主要参考资料有以下几分文档,这些文档已经放到了开发板光盘中: 1、《STM32MP157参考手册》,路径:开发板光盘à7、STM32MP1参考资料。 2、《STM32MP157A&D数据手册》,路径:开发板光盘à7、STM32MP1参考资料。 3、《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, 3rd Edition》,路径:开发板光盘à 4、参考资料。 4、《Cortex-M3权威指南》中文版(宋岩 译),路径:开发板光盘à 4、参考资料。 前两个是ST官方针对STM32MP1的一份通用参考资料,重点介绍STM32MP1内部资源及使用,寄存器描述等,内容翔实,但是没有实例,也没有对Cortex-M4构架进行多少介绍,读者只能根据自己对书本的理解来编写相关代码。 后两者是专门介绍Cortex-M3/M4构架的书,有简短的实例,但没有专门针对STM32MP1的介绍。所以,在学习STM32MP1的时候,必须结合这份资料来看。 另外,由于STM32MP1目前只有英文版手册,所以会给大家的学习带来一点障碍,但是由于STM32MP1是在STM32单片机的基础上发展而来的,很多外设和STM32H7一样的,可以看做是STM32H7的换核版,因此大家可以借助STM32H7的中文手册来学习STM32MP1。STM32H7的中文手册也放到了开发板光盘中,路径为:开发板光盘à 7、STM32MP1参考资料àSTM32H7x3参考手册(中文版).pdf。 1.3 本书编写规范本书通过数十个例程,给大家详细介绍STM32MP1 M4的所有功能和外设,章节顺序按难易程度排布,知识内容由简入深,从基本的开发环境搭建、新建工程、HAL库介绍等开始,一直到后面的高阶例程,因此需要先学了前面的知识,才好学习后面的知识点。 这些章节在结构上一般分为4个部分: 1、外设功能介绍 简单介绍具体章节所要用到的外设功能、框图和寄存器等,让大家对所用外设的功能有一个基本了解,方便后面的程序设计。
2、硬件设计 包括具体章节的实验功能说明、所用到的硬件资源及原理图连接方式,从而知道要做什么? 需要用到哪些IO口?是怎么接线的?方便程序设计的时候编写驱动代码。 3、程序设计 一般包括:程序流程图、关键代码分析、main函数讲解等三部分。一点点介绍程序代码是怎么来的,注意事项等,从而学会整个代码。 4、下载验证 下载验证属于实践环节,在完成程序设计后,教大家如何下载并验证我们的例程是否正确? 完成一个闭环过程。 1.4 本书代码规范为了方便大家编写高质量代码,我们对本书的代码风格进行了统一,详细的代码规范说明文档:《【正点原子】嵌入式单片机C代码规范与风格.pdf》,初学者务必好好学习一下这个文档。 总结几个规范的关键点: 1、所有函数/变量名字非特殊情况,一般使用小写字母; 2、注释风格使用doxgen风格,除屏蔽外,一律使用 /* */ 方式进行注释; 3、TAB键统一使用4个空格对齐,不使用默认的方式进行对齐; 4、每两个函数之间,一般有且只有一个空行; 5、相对独立的程序块之间,使用一个空行隔开; 6、全局变量命名一般用g_开头,全局指针命名一般用 p_开头; 7、if、for、while、do、case、switch、default等语句单独占一行,一般无论有多少行执行语句,都要用加括号:{}。 1.5 例程资源说明 STM32MP1开发板提供的M4标准例程多个HAL库版本的例程代码,我们提供的这些例程,基本都是原创,拥有非常详细的注释,代码风格统一、循序渐进,非常适合初学者入门。 STM32MP1开发板的M4裸机例程列表如表1.5.1所示: 表1.5.1 M4裸机例程表 从上表可以看出,正点原子STM32MP1开发板M4裸机的例程基本上涵盖了M4内核的所有内部资源,并且外扩展了很多有价值的例程。而且从上表可以看出,例程安排是循序渐进的,首先从最基础的汇编点亮LED灯开始,然后一步步深入,从简单到复杂,有利于大家的学习和掌握。所以,对于那些想要了解STM32MP1内部M4内核开发的朋友来说,正点原子STM32MP1开发板是非常适合的。不过,对于想深入了解STM32单片机开发的朋友来说,还是推荐使用STM32单片机开发板,正点原子有STM32F1/F4/F7/H7等系列的STM32开发板。 1.6 学习资料查找学习资料包括三个方面: 1、ST官方的学习资料 首先肯定是ST官方: www.st.com,ST最新最全的资料,一般都是放在该网站,ST中文社区的资料,一般都是从ST官网搬过来的,所以如果你想找最新的STM32MP1官方资料,应该在ST官网找。ST官网的STM32MP1资料页面如图1.6.1所示(注意:默认是英文语言,需要在网页右上角设置成中文): file:///C:\Users\WCY\AppData\Local\Temp\ksohtml\wps428F.tmp.jpg 图1.6. 1 STM32MP1官网 ① 、点击“产品”,打开整个产品序列。 ② 、找到“微控制器”,里面包含了ST所有的微控制器产品,STM32MP1就在此目录中。 ③ 、点击“STM32MP1系列”,打开整个STM32MP1系列的介绍页面,如图1.6.2所示: file:///C:\Users\WCY\AppData\Local\Temp\ksohtml\wps4290.tmp.jpg 图1.6. 2 STM32MP1系列详情 另外一个网站ST中文社区: www.stmcu.org,里面的资料全部由ST中国区的人负责更新和整理,包含了所有ST公司的MCU资料,比如:STM32MP1最新的芯片文档(参考手册、数据手册、勘误手册、编程手册等)、软件资源(固件库、配置工具、PC软件等)、硬件资源(各种官方评估板)等,如图1.6.3所示: file:///C:\Users\WCY\AppData\Local\Temp\ksohtml\wps4291.tmp.jpg 图1.6. 3 STM32MP1相关资料(stmcu.org) 意法半导体提供了一个Wiki平台 https://wiki.st.com,提供了STM32微处理器相关的深入的技术信息,操作方法和入门指南,以帮助客户进行设计旅程。不过这个网站目前是英文版本,还没有对应的中文版本。进入STM32 Wiki官网,可以选择浏览MCU产品还是MPU产品,我们选择STM32MP1系列产品,如图1.6.4所示: file:///C:\Users\WCY\AppData\Local\Temp\ksohtml\wps4292.tmp.jpg 图1.6. 4 STM32MP1 Wiki官网 进入STM32MP1系列产品Wiki以后,Getting started区域包含ST官方MP1开发板入门指南,Development zone区域可帮助开发应用程序和共享项目,Wiki archives是档案区。我们进入Development zone区域后,点击左上方的箭头进入导航页,或者可以直接在上方搜索框中输入关键字以搜索我们想查找的内容,如图1.6 .5。 file:///C:\Users\WCY\AppData\Local\Temp\ksohtml\wps4293.tmp.jpg 图1.6. 5 STM32MP1 Wiki官网 3、正点原子的学习资料 file:///C:\Users\WCY\AppData\Local\Temp\ksohtml\wps42A4.tmp.jpg 图1.6. 6正点原子文档中心 在文档中心下面,我们可以找到正点原子所有开发板、模块、产品等的详细资料下载地址。 4、正点原子论坛 正点原子论坛,即开源电子网: www.openedv.com ,该论坛从2010年成立至今,已有10年时间,数十万注册用户,STM32相关帖子数量有20多万,每天数百人互动,是一个非常好的STM32学习交流平台。 在学习过程中,我们难免会遇到一些问题,有任何问题,大家都可以先去开源电子网搜索一下,基本上你能遇到的问题,我们论坛都有人问过了,所以可以很方便的找到一些参考解决方法。如果实在找不到,你也可以在论坛提问,每天原子哥都会在上面给大家做解答。
1.7 给初学者的建议对于学习STM32MP1 M4裸机开发的朋友,这里我给大家提以下三点建议:
1、准备一款合适的开发板(强烈建议配仿真器) 任何实验,我们都需要验证,最好的验证方式就是在开发板上面实际跑起来,然后通过仿真器仿真调试,查看具体的执行过程。仿真器可以加深印象,还可以方便的查找bug,所以学习STM32MP1必备:一款开发板 + 一个仿真器。 另外,开发板在精不在多,学好一款,基本上就够用了。
2、两本参考资料 两本资料就是:《STM32MP1参考手册》和《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, 3rd Edition》。这两个手册在本章1.2节有过介绍,对于我们学习STM32MP1和了解Cortex-M3/M4内核非常有帮助,是学习STM32MP1的必备资料,因此初学者尤其要多看这两个手册。 这里建议大家,要多了解一些底层的东西,不要只会使用库,否则,一旦遇到问题,或者换个芯片,就不知道怎么办了。
3、戒骄戒躁,勤思敏行。 学习STM32MP1千万不能浮躁,更加不能骄傲,初学者学习STM32MP1会遇到很多问题和难点,这个时候千万不能浮躁,不要带情绪,一定要静下心来,缕清思路,逐一攻克。 我就曾经遇到一个问题半个月都没解决的情况,但是这半个月我尝试并掌握了很多解决问题的方法,最终解决问题的时候,其实带来的收获远远大于问题本身。所以不要遇到问题就认怂,就想问别人,问老师,先尝试自己解决一下,比如花个十天半个月去解决一个问题,我相信你也会有很多收获。 学习我们教程的时候,要多思考,多想想为什么要这么写?有没有其他更好的办法?然后,自己去验证,去实践。这里非常重要的一点是要多实践,一定要自己动手写代码,然后再下载到开发板验证,不要只是看看视频,看看例程就算完了,要能做到举一反三,如果自己不实践,不动手写代码,是很难真正学会的。 最后,C语言是学习STM32MP1的必备知识,所以如果C语言不过关的朋友,得先好好学习一下C语言基础,否则学起来会比较吃力。
|