当前位置:网站首页>【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
【正点原子STM32连载】第一章 本书学习方法 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
2022-08-04 08:57:00 【正点原子】
1)实验平台:正点原子MiniPro H750开发板
2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560
3)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-336836-1-1.html
4)对正点原子STM32感兴趣的同学可以加群讨论:879133275
第一章 本书学习方法
为了让大家更好的学习和使用本书,本章将给大家介绍一下本书的学习方法,包括:本书的学习顺序、编写规范、代码规范、资料查找、学习建议等内容。
本章将分为如下几个小节:
1.1 本书学习顺序
1.2 本书参考资料
1.3 本书编写规范
1.4 本书代码规范
1.5 例程资源说明
1.6 学习资料查找
1.7 给初学者的建议
1.1 本书学习顺序
为了让大家更好的学习和使用本书,我们做了以下几点考虑:
1,坚持循序渐进的思路编写,从基础到入门,从简单到复杂。
2,将知识进行分类介绍,简化学习过程,包括:基础篇、入门篇、提高篇。
3,将硬件介绍独立成一个文档(《MiniPro STM32H750硬件参考手册》),本书着重介绍软件知识。
因此,大家在学习本书的时候,我们建议:先通读一遍《MiniPro STM32H750硬件参考手册》,对开发板的硬件资源有个大概了解,然后从基础篇开始,再到入门篇,最后学习提高篇,循序渐进,逐一攻克。
对初学者来说,尤其要按照以上顺序学习,不要跳跃式学习,因为我们书本的知识都是一环扣一环的,如果前面的知识没学好,后面的知识学起来就会很困难。
对于已经学过STM32的朋友来说,就可以跳跃式学习了,当然如有不懂,也得翻阅前面的知识点进行巩固。
1.2 本书参考资料
本书的主要参考资料有以下三份文档:
《STM32H7xx参考手册_V7(英文版).pdf》
《STM32H7xx参考手册_V3(中文版).pdf》
《STM32H7编程手册.pdf》
《STM32H7xx参考手册_V7(英文版).pdf》是英文版的,该文档详细介绍了STM32H7的各种寄存器定义以及外设的使用说明等,是学习STM32H750的必备资料。
《STM32H7xx参考手册_V3(中文版)》则是针对H7x3等系列芯片的中文版本参考手册,由于和H750有很多内容相似/相同,所以《STM32H7xx参考手册_V3(中文版).pdf》在这里也有一定的参考作用,对那些英文比较差的朋友,是一个很好的辅助文档资料(可以对照两本手册学习)。
而《STM32H7编程手册.pdf》则是对《STM32H7xx参考手册_V7(英文版).pdf》的补充,很多关于Cortex M7内核的介绍(寄存器等),都可以在这个文档找到答案,该文档同样是ST的官方资料,专门针对ST的Cortex M7产品。结合这三本参考资料,就可以比较好的学习STM32H7了。
这几份参考文档都在我们提供的光盘资料里面可以找到,路径:A盘8,STM32参考资料 文件夹下可以找到。
1.3 本书编写规范
本书通过数十个例程,给大家详细介绍STM32的所有功能和外设,按难易程度以及知识结构,我们将本书分为三个篇章:基础篇、入门篇和提高篇。
基础篇,共12章,主要是一些基础知识介绍,包括开发环境搭建、新建工程、HAL库介绍、时钟树介绍、SYSTEM文件夹介绍等,这些章节在结构上没有共性,但是互相有关联,有一个集成的关系在里面,即:必须先学了前面的知识,才好学习后面的知识点。
入门篇和提高篇,共51章,详细介绍了STM32H750每一个外设的使用方法及驱动代码,并且还介绍了一些非常使用的程序代码(纯软件例程),如:内存管理、文件系统读写、拼音输入法、手写识别、图片解码、IAP等。这部分内容占了本书的绝大部分篇幅,而且这些章节在结构上都比较有共性,一般分为4个部分,如下:
1,外设功能介绍
2,硬件设计
3,程序设计
4,下载验证
外设功能介绍,简单介绍具体章节所要用到的外设功能、框图和寄存器等,让大家对所用外设的功能有一个基本了解,方便后面的程序设计。
硬件设计,包括具体章节的实验具体功能说明、所用到的硬件资源及原理图连接方式,从而知道要做什么? 需要用到哪些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 例程资源说明
MiniPro STM32H750开发板提供的标准例程多达68个,提供:寄存器和HAL库两个版本的代码(本手册以HAL库版本例程做为介绍,我们不再提供寄存器版本文档教程,寄存器版本例程仅供大家参考学习)。我们提供的这些例程,基本都是原创,拥有非常详细的注释,代码风格统一、循序渐进,非常适合初学者入门。
MiniPro STM32H750开发板的例程列表如表1.5.1所示:
MiniPro STM32H750 开发指南_V1.1
表1.5.1 MiniPro STM32H750开发板例程表
从上表可以看出,正点原子MiniPro STM32H750开发板的例程基本上涵盖了STM32H750VBT6芯片的所有内部资源,并且外扩展了很多有价值的例程,比如:FLASH模拟EEPROM实验、USMART调试实验、UCOSII实验、内存管理实验、IAP实验、拼音输入法实验、手写识别实验、综合实验等。
而且从上表可以看出,例程安排是循序渐进的,首先从最基础的跑马灯开始,然后一步步深入,从简单到复杂,有利于大家的学习和掌握。所以,正点原子MiniPRO STM32H750开发板是非常适合初学者的。当然,对于想深入了解STM32H750内部资源的朋友,正点原子MiniPRO STM32H750开发板也绝对是一个不错的选择。
1.6 学习资料查找
学习资料包括三个方面:
1,ST官方的学习资料
ST官方资料有两个网址:www.stmcu.org.cn和 www.st.com。
www.stmcu.org.cn是ST中文社区,里面的资料全部由ST中国区的人负责更新和整理,包含了所有ST公司的MCU资料,比如:STM32H7最新的芯片文档(参考手册、数据手册、勘误手册、编程手册等)、软件资源(固件库、配置工具、PC软件等)、硬件资源(各种官方评估板)等,如图1.6.1所示:
图1.6.1 STM32H7相关资料(stmcu.org)
www.st.com是ST官网,ST最新最全的资料,一般都是放在该网站,ST中文社区的资料,一般都是从ST官网搬过来的,所以如果你想找最新的STM32官方资料,应该在ST官网找。对于初学者,一般从ST中文社区获取ST官方资料就可以了。ST官网的STM32H750资料页面如图1.6.2所示(注意:默认是英文语言,需要在网页右上角设置成中文):
图1.6.2 STM32H750官网资料(st.com)
1,STM32H750的硬件相关资源,在:产品微控制器STM32 ARM Cortex 32位微控制器STM32高性能单片机STM32H7系列STM32H750超值型工具和软件 路径下面可以找到。
2,STM32H750的软件相关资源,在:工具与软件嵌入式软件微控制器软件STM32微控制器软件 路径下面可以找到。
2,正点原子的学习资料
正点原子给大家提供的学习资料,都放在正点原子文档中心,大家可以在文档中心下载所有正点原子最新最全的学习资料,文档中心地址:www.openedv.com/docs/index.html ,如图1.6.3所示:
图1.6.3 正点原子文档中心
在文档中心下面,我们可以找到正点原子所有开发板、模块、产品等的详细资料下载地址。
3,正点原子论坛
正点原子论坛,即开源电子网:http://www.openedv.com/forum.php,该论坛从2010年成立至今,已有10年时间,数十万注册用户,STM32相关帖子数量有20多万,每天数百人互动,是一个非常好的STM32学习交流平台。
在学习过程中,我们难免会遇到一些问题,有任何问题,大家都可以先去开源电子网搜索一下,基本上你能遇到的问题,我们论坛都有人问过了,所以可以很方便的找到一些参考解决方法。如果实在找不到,你也可以在论坛提问,每天原子哥都会在上面给大家做解答。
不过,大家在论坛发帖的时候,建议先阅读一下提问的智慧,缕清思路,不要乱问一通,提高提问质量,提问的智慧阅读地址:http://www.openedv.com/thread-7245-1-1.html。
1.7 给初学者的建议
对于学习STM32,这里我给大家提以下三点建议:
1,准备一款合适的开发板(强烈建议配仿真器)
任何实验,我们都需要验证,最好的验证方式就是在开发板上面实际跑起来,然后通过仿真器仿真调试,查看具体的执行过程。仿真调试可以加深印象,还可以方便的查找bug,所以学习STM32必备:一个开发板 + 一个仿真器。
另外,开发板在精不在多,学好一款,基本上就够用了。
2,两本参考资料,即《STM32中文参考手册》和《Cortex-M3权威指南》。
这两个手册在本章1.2节有过介绍,对于我们学习STM32和了解Cortex M3内核非常有帮助,是学习STM32的必备资料,因此初学者尤其要多看这两个手册。
这里建议大家,要多了解一些底层的东西(可结合这两个手册,看看寄存器版本的例程),不要只会使用库,否则,一旦遇到问题,或者换个芯片,就不知道怎么办了。
3,戒骄戒躁,勤思敏行。
学习STM32千万不能浮躁,更加不能骄傲,初学者学习STM32会遇到很多问题和难点,这个时候千万不能浮躁,不要带情绪,一定要静下心来,缕清思路,逐一攻克。
我就曾经遇到一个问题半个月都没解决的情况,但是这半个月我尝试并掌握了很多解决问题的方法,最终解决问题的时候,其实带来的收获远远大于问题本身。所以不要遇到问题就认怂,就想问别人,问老师,先尝试自己解决一下,比如花个十天半个月去解决一个问题,我相信你也会有很多收获。
学习我们教程的时候,要多思考,多想想为什么要这么写?有没有其他更好的办法?然后,自己去验证,去实践。这里非常重要的一点是要多实践,一定要自己动手写代码,然后再下载到开发板验证,不要只是看看视频,看看例程就算完了,要能做到举一反三,如果自己不实践,不动手写代码,是很难真正学会的。
最后,C语言是学习STM32的必备知识,所以如果C语言不过关的朋友,得先好好学习一下C语言基础,否则学起来会比较吃力。
边栏推荐
- It is found that several WRH tables are locked, what should I do?
- Wang Shuang's Assembly Language Chapter 4: The First Program
- binder通信实现
- js - the first letter that appears twice
- 【论文笔记】Dynamic Convolution: Attention over Convolution Kernels
- 【虚幻引擎UE】UE5实现WEB和UE通讯思路
- YOLOv5应用轻量级通用上采样算子CARAFE
- 『递归』递归概念与典型实例
- grafana手册之可视化配置图表table
- About Oracle RAC 11g rebuilding the disk group
猜你喜欢
2022年制冷与空调设备运行操作特种作业证考试题库及模拟考试
JMeter 常用的几种断言方法,你会几种呢?
IDEA引入类报错:“The file size (2.59 MB) exceeds the configured limit (2.56MB)
【UE虚幻引擎】UE5三步骤实现AI漫游与对话行为
B站回应HR称“核心用户都是Loser”、求职者是“白嫖党”:已被劝退
有坦荡的远方
【虚幻引擎UE】UE5实现WEB和UE通讯思路
grafana手册之可视化配置图表table
Wang Shuang's Assembly Language Chapter 4: The First Program
【CNN基础】转置卷积学习笔记
随机推荐
Yolov5 replaces the backbone network of "Megvii Lightweight Convolutional Neural Network ShuffleNetv2"
【UE虚幻引擎】UE5三步骤实现AI漫游与对话行为
记录十条工作中便利的API小技巧
cannot import name ‘import_string‘ from ‘werkzeug‘【bug解决】
金仓数据库 KDTS 迁移工具使用指南 (7. 部署常见问题)
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
inject() can only be used inside setup() or functional components.
优炫数据库只有数据文件如何恢复
inject() can only be used inside setup() or functional components.
grafana手册之可视化配置图表table
layout manager
去掉js代码文件所有注释
ISO14443A读卡流程(作为示例参考)
四大网络攻击常见手段及防护
华为设备配置VRRP与路由联动监视上行链路
华为设备配置VRRP与NQA联动监视上行链路
JMeter 常用的几种断言方法,你会几种呢?
[STM32] STM32F103 series name and package, memory
【STM32】STM32F103系列名称与封装、内存
大佬们,mysql里text类型的字段,FlinkCDC需要特殊处理吗 就像处理bigint uns