STM32 学习方法

前言

学习知识要掌握有效的学习方法,学习技术也是一样,本篇分享关于我学习 STM32 后总结的学习方法。

推荐的学习方法

系统学习

在网上购买一款开发板,使用开发板+开发板配套视频教程+开发板配套源码+芯片官方手册搭配学习。

安富莱、正点原子、野火,这三家公司研发的开发板都挺不错,可自由选择一款作为学习使用。

拒绝做伸手党

要学会如何学习,如何解决问题,拒绝做伸手党。

在学习过程中遇到问题,应先尝试自己查资料或上网搜索进行解决,找资料的过程中看看别人的理解思路。如果在查资料或搜索后并没有找到满意的答复,这时便可以寻求大佬的帮助向大佬提问(文末附有大佬云集的论坛网站链接)。

不经过思考的提问,对自己没有提升。学习技术的过程中,如果你只会做伸手党,那将什么都学不到。

拿到开发板后如何入手

  • 先看提供的开发板配套资料的目录,了解配套资料的情况
  • 找到核心的学习资料,大致了解开发板硬件资源
  • 查看资料,安装开发环境
  • 开启学习之旅,先学基础的,基础要多学多问
  • 高级的知识,可以慢慢来学
  • 学习过程中不懂的,要先查资料,然后提问

需要参考哪些资料

  • 最底层(了解):CM3 权威指南 / CM4 权威指南(ARM 提供 )
  • 芯片参考手册(芯片功能寄存器描述特性等)(详细了解):STM32F10x 中文参考手册 / STM32F4x 中文参考手册(ST 提供)
  • 芯片数据手册(datasheet,ds)(了解):STM32F103xCDE_DS_CH_V5.pdf(芯片电气参数,引脚说明等)
  • 官方其它资源和教程(了解):固件库包(含参考源码),一些官方培训 PPT(通过 ST 官网获取)
  • 你所购买开发板的学习教程(手册,视频,源码)(理解):针对开发板的源码,教程,视频等,要将源码的涵义吃透(开发板商家提供)

需要掌握哪些基本技能

熟练掌握 C 语言

C 语言是嵌入式开发的基础中的基础,大多数嵌入式项目的开发都是用 C 语言来编写的,如果 C 语言不过关,将会大大限制嵌入式学习的进度,以及嵌入式学习的深度。

熟练掌握一种开发环境与调试工具

在这里强调的是一种开发环境与调试工具,现在市面上供我们选择的开发环境和调试工具有很多,但我们只需熟练掌握一种就好啦,精通一种后其余的在以后也容易上手。

  • 掌握一种开发环境:Keil uVision5(MDK-ARM)
  • 掌握一个调试工具:JTAG(必备)

MDK-ARM 软件为基于 Cortex-M、Cortex-R4、ARM7、ARM9 处理器设备提供了一个完整的开发环境,MDK-ARM 专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。

市面上关于 STM32 的视频教程中,绝大多数都是使用 MDK-ARM 进行教学的,这里我也推荐大家使用并熟练掌握 MDK-ARM。

我们处在初学阶段时基础不够扎实,对于开发板配套源码或自己编写的代码千万不要走马观花的看,一定要多使用 JTAG 调试代码,深入理解代码执行的流程,做到深入理解代码的涵义。

寄存器、标准库、HAL 库如何选择

标准库和 HAL 库任选其一,或两个一起学习,然后与寄存器对比着学习。

项目中大多数用标准库或 HAL 库,但是作为学习,如果只会看几个函数的话,那么你根本就没有学懂,遇到问题很难自己解决,所以有必要了解一下寄存器的配置原理,加深对底层驱动的理解。

掌握标准库或 HAL 库的基本配置方法,了解寄存器底层配置过程,以便深入理解 STM32 芯片的本质。

深入学习基本外设,选择性学习高级功能

基本外设

单片机主要学习的就是单片机内部的四大基本外设,分别是 GPIO 输入输出、外部中断、定时器和串口通信(串行 I/O 口),理解掌握了这四个外设,基本就入门了一款 MCU。

基本外设接口

这些外设接口功能原理对每个芯片几乎都是一样,对芯片而言就是加减法而已。

SPI,IIC,WDG,FAMC,ADC/DAC,SDIO 等。

高级功能

UCOS,FATFS,EMWIN 等,以及一些应用。

论坛网站推荐

下面推荐几个国内顶尖的 STM 论坛网站,可通过网站获取资源,在学习过程中遇到的问题也可以在上面进行提问,会有大佬在论坛进行解答,当然如果你自己就是大佬,也可以在论坛中为嵌入式小白们解答问题。

后记

这就是我总结的 STM32 的学习方法,因为目前我对 STM32 的学习还不够深入,理解也不够透彻,所以如果文中有表述不清晰或观点不正确的地方,还请大佬批评指点。