单片机其实都是相通的,会了一种单片机,对着数据手册查看一下寄存器的设置可以快速的入手其他型号的单片机。会51单片机,说明有单片机的基础,再去学习STM32单片机会很快。由于51单片机的端口都是准双向口并且寄存器相对较简单,而STM32作为32的单片机,片上资源更多、寄存器也相对复杂。建议从以下几个方面入手。

选择一块单片机型号较广泛的STM32单片机开发板

学习单片机,其实就是学习单片机相关电路的设计、以及单片机程序的编写,而51单片机和STM32单片机的电路设计基本类似,主要取决于需求和功能,而与单片机本身关系不大,STM32单片机和51单片机开发板的硬件电路基本类似、重合性较大。单片机开发板集成了常用的外设电路,方便了初学者学习,所以入手一块开发板是学习单片机的当务之急。

会51单片机如何快速学习使用STM32单片机

从基本的片上资源开始学习

STM32基本的单片机资源包括:普通GPIO的配置、定时器的应用、中断的应用、AD采样的配置等。这些功能51单片机也有,既然会51单片机,那么学习起来很容易。在学习的过程中,要学习STM32单片机的寄存器是如何配置的,或者学习库函数的使用、调用方法。

会51单片机如何快速学习使用STM32单片机

学习相对高级的片上资源

这里所讲的高级资源是针对51单片机而言的,如UART、IIC、SPI、SDIO、FSMC、RTC、PWM、看门狗等。这一部分的学习,主要学习这些资源的工作原理、基本硬件电路的设计、寄存器的配置方法或者是库函数的使用方法等。根据单片机开发板所提供的例程学习,并基于开发板提出自己的需求去实现。

多参与项目

学习单片机的目的是为了做产品,而学习和做产品是迥然不同的,要多参与项目、多动手,在项目中积累经验。

我是大学读的电子信息工程,最开始也是学习的51单片机,用51单片机做过几个小实验,毕业后,工作需要,做过半年AVR,然后又因为项目需要,就转到stm32单片机了,当时学习STM32是自学摸索,所以在学习STM32,我有自己的看法。

STM32的固件库,除了启动文件.S

会51单片机如何快速学习使用STM32单片机

文件,其他的底层,其实是使用寄存器地址,映射到相关的位置,然后使用结构体定义,用指针替代,最后形成对应的寄存器,比如GPIOE->ODR,固件库再以此进行操作寄存器操作,封装成函数,并将相同外设的多个函数放到相同的.c的文件中.

会51单片机如何快速学习使用STM32单片机

总结固件库用法,主要是对结构体的变量进行赋值,将赋值好的结构进行初始化函数运算.调用各类合适的函数.并在此基础上,完成自己需要的代码功能处理,

对于自学者来说,尤其是从51单片机转过来的自学者来说,习惯了51单片机操作寄存器配置,学习stm32固件库是比较不习惯和困难的,尤其是对于C语言的指针和结构体理解不够透彻的同学,更有难度。

会51单片机如何快速学习使用STM32单片机

所以我学stm32,最初是学习的stm32f1系列的寄存器。

前提条件是,需要stm32一块开发板,有jlink烧录器,搭建好能够开发stm32的keil的开发环境。能仿真操作。

1学习IO端口的普通输入输出的操作

2学习串口操作,串口数据的 输入输出,以方便有利于调试

3 学习ADC,进行模拟量采集,比如电池电量

4 学习SPI,

5 学习片上FLASH存储

6 学习以太网

7 学习USB

8学无止境,要学的很多,我觉得学习STM32从0-1最难,找到办法后,后续的学习就是按部就班,费时间努力去学就可以了,

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查