第1章 本书的学习方法
为了让大家更好的学习和使用本书,本章将给大家介绍一下本书的学习方法,包括:本书的学习顺序、编写规范、代码规范、资料查找、学习建议等内容。
本章将分为如下几个小节:
1.1,本书学习顺序
1.2,本书参考资料
1.3,本书编写规范
1.4,本书代码规范
1.5,例程资源说明
1.6,学习资料查找
1.7,给初学者的建议
1.1 本书学习顺序
为了让大家更好的学习和使用本书,我们做了以下几点考虑:
1,坚持循序渐进的思路编写,从基础到入门,从简单到复杂。
2,将知识进行分类介绍,简化学习过程,包括:基础篇、电机专题篇、FOC篇。
3,将硬件介绍独立成一个文档(《DMG474硬件参考手册.pdf》),本书着重介绍软件知识。
因此,大家在学习本书的时候,我们建议:先通读一遍《DMG474硬件参考手册.pdf》,对开发板的硬件资源有
1.2 本书参考资料
本书的主要参考资料有以下几份文档:
《STM32G4xx参考手册_V7(英文版).pdf》
《STM32G474VET6(英文版).pdf》
前者是ST官方针对STM32的一份通用参考资料,重点介绍STM32内部资源及使用,寄存器描述等,内容翔实,但是没有实例,读者只能根据自己对书本的理解来编写相关代码。
后者是专门介绍STM32芯片硬件设计方面的书,其内容包括:芯片的引脚功能、外设复用情况、电气特性等。所以,在学习STM32的时候,必须结合这份资料来看。
这几份参考文档都在我们提供的光盘资料里面可以找到,路径:A盘 →7,STM32参考资料 文件夹下可以找到。
1.3 本书编写规范
本书通过数十个例程,给大家详细介绍如何使用STM32控制电机,按难易程度以及知识结构,我们将本书分为三个篇章:基础篇、电机专题篇和FOC篇。
基础篇,共4章,主要是电机基础知识介绍,包括电机的概念、分类、结构、工作原理、电机控制相关的STM32外设介绍等,这些章节在结构上没有共性,但是互相有关联,有一个集成的关系在里面,即:必须先学了前面的知识,才好学习后面的知识点。
电机专题篇和FOC篇,详细介绍了多种电机的控制原理,并且还介绍了一些非常实用的程序代码。这部分内容占了本书的绝大部分篇幅,而且这些章节在结构上都比较有共性,一般分为4个部分,如下:
1,控制原理介绍
2,硬件设计
3,程序设计
1, 下载验证
控制原理介绍,简单介绍具体章节所要用到的电机控制原理,让大家对所用电机的控制原理有一个基本了解,方便后面的程序设计。
硬件设计,包括具体章节的实验具体功能说明、所用到的硬件资源及原理图连接方式,从而知道要做什么? 需要用到哪些IO口? 是怎么接线的? 方便程序设计的时候编写驱动代码。
程序设计,一般包括:驱动介绍、配置步骤、程序流程图、关键代码分析、main函数讲解等部分。一点点介绍程序代码是怎么来的,注意事项等,从而学会整个代码。
下载验证,属于实践环节,在完成程序设计后,教大家如何下载并验证我们的例程是否正确? 完成一个闭环过程。
1.4 本书代码规范
为了方便大家编写高质量代码,我们对本书的代码风格进行了统一,详细的代码规范说明文档,见光盘:A盘→1,入门资料 →《嵌入式单片机 C代码规范与风格.pdf》,初学者务必好好学习一下这个文档。
总结几个规范的关键点:
1,所有函数/变量名字非特殊情况,一般使用小写字母;
2,注释风格使用doxgen风格,除屏蔽外,一律使用 /* */ 方式进行注释;
3,TAB键统一使用4个空格对齐,不使用默认的方式进行对齐;
4,每两个函数之间,一般有且只有一个空行;
5,相对独立的程序块之间,使用一个空行隔开;
6,全局变量命名一般用g_开头,全局指针命名一般用 p_开头;
7,if、for、while、do、case、switch、default等语句单独占一行,一般无论有多少行执行语句,都要用加括号:{}。
1.5 例程资源说明
DMG474电机开发板提供的电机专题例程多达74个(基于HAL库)。我们提供的这些例程,基本都是原创,拥有非常详细的注释,代码风格统一、循序渐进,非常适合初学者入门。
DMG474电机开发板的例程列表如表1.5.1所示:


表1.5.1 DMG474电机开发板例程表
从上表可以看出,正点原子DMG474电机开发板的例程基本上涵盖了电机控制相关的STM32外设,并且在电机控制方面实现了很多有价值的例程。
从上表可知,例程安排是循序渐进的,首先从最基础的基本定时器中断开始,然后一步步深入,从简单到复杂,有利于大家的学习和掌握。所以,正点原子DMG474电机开发板是非常适合初学者的。当然,对于想深入学习STM32以及电机控制的朋友,正点原子DMG474电机开发板也绝对是一个不错的选择。
1. 6 学习资料查找
学习资料包括三个方面:
1,ST官方的学习资料
ST官方资料有两个网址:https://www.stmcu.com.cn/和 www.st.com 。
https://www.stmcu.com.cn/是ST中文社区,里面的资料全部由ST中国区的人负责更新和整理,包含了所有ST公司的MCU资料,比如:STM32G4最新的芯片文档(参考手册、数据手册、勘误手册、编程手册等)、软件资源(固件库、配置工具、PC软件等)、硬件资源(各种官方评估板)等,如图1.6.1所示:

图1.6.1 STM32G4相关资料(stmcu.org)
www.st.com 是ST官网,ST最新最全的资料,一般都是放在该网站,ST中文社区的资料,一般都是从ST官网搬过来的,所以如果你想找最新的STM32官方资料,应该在ST官网找。对于初学者,一般从ST中文社区获取ST官方资料就可以了。ST官网的STM32G4资料页面如图1.6.2所示(注意:默认是英文语言,需要在网页右上角设置成中文):

图1.6.2 STM32G474官网资料(st.com)
① ,STM32G474的硬件相关资源,在:产品 →微控制器 →STM32 ARM Cortex 32位微控制器 →STM32主流MCU →STM32G4系列 →STM32G474 →文件路径下面可以找到。
② ,STM32G474的软件相关资源,在:工具与软件→嵌入式软件 →微控制器软件 →STM32微控制器软件 路径下面可以找到。
2,正点原子的学习资料
正点原子给大家提供的学习资料,都放在正点原子文档中心,大家可以在文档中心下载所有正点原子最新最全的学习资料,文档中心地址:www.openedv.com/docs/index.html ,如图1.6.3所示:

图1.6.3 正点原子文档中心
在文档中心下面,我们可以找到正点原子所有开发板、模块、产品等的详细资料下载地址。
3,正点原子论坛
正点原子论坛,即开源电子网:,该论坛从2010年成立至今,已有十余年时间,数十万注册用户,STM32相关帖子数量有20多万,每天数百人互动,是一个非常好的STM32学习交流平台。
在学习过程中,我们难免会遇到一些问题,有任何问题,大家都可以先去开源电子网搜索一下,基本上你能遇到的问题,我们论坛都有人问过了,所以可以很方便的找到一些参考解决方法。如果实在找不到,你也可以在论坛提问,每天原子哥都会在上面给大家做解答。
不过,大家在论坛发帖的时候,建议先阅读一下提问的智慧,缕清思路,不要乱问一通,提高提问质量,提问的智慧阅读地址:www.openedv.com/thread-7245-1-1.html。
1. 7 给初学者的建议
对于学习STM32以及电机控制,这里我给大家提以下三点建议:
1,准备一款合适的开发板(强烈建议配仿真器)
任何实验,我们都需要验证,最好的验证方式就是在开发板上面实际跑起来,然后通过仿真器仿真调试,查看具体的执行过程。仿真器可以加深印象,还可以方便的查找bug,所以学习STM32以及电机控制必备:一个开发板 + 一个仿真器 + 一个驱动器 + 所学习的电机。
另外,开发板在精不在多,学好一款,基本上就够用了。
2,准备两本参考资料,即《STM32G4xx参考手册_V7(英文版).pdf》和《STM32G474VET6.pdf》。
这两个手册在本章1.2节有过介绍,对于我们学习电机控制相关的STM32外设和了解STM32硬件资源非常有帮助,是学习STM32以及电机控制的必备资料,因此初学者尤其要多看这两个手册。
3,戒骄戒躁,勤思敏行。
学习STM32以及电机控制千万不能浮躁,更加不能骄傲,初学者学习STM32以及电机控制会遇到很多问题和难点,这个时候千万不能浮躁,不要带情绪,一定要静下心来,缕清思路,逐一攻克。
我就曾经遇到一个问题半个月都没解决的情况,但是这半个月我尝试并掌握了很多解决问题的方法,最终解决问题的时候,其实带来的收获远远大于问题本身。所以不要遇到问题就认怂,就想问别人,问老师,先尝试自己解决一下,比如花个十天半个月去解决一个问题,我相信你也会有很多收获。
学习我们教程的时候,要多思考,多想想为什么要这么写?有没有其他更好的办法?然后,自己去验证,去实践。这里非常重要的一点是要多实践,一定要自己动手写代码,然后再下载到开发板验证,不要只是看看视频,看看例程就算完了,要能做到举一反三,如果自己不实践,不动手写代码,是很难真正学会的。
最后,C语言是学习STM32的必备知识,所以如果C语言不过关的朋友,得先好好学习一下C语言基础,否则学起来会比较吃力。