我当时为什么想学STM32,是因为了解到这颗MCU具有强大的功能,那时候有人用这个芯片Div做过手持式示波器,我当时觉得很厉害。自己也很想用它来做些高大上的东西。所以说这个,是想表述要对于新鲜事物,要保持一颗好奇心和探究心。这是你学习的源动力。

怎么做才能将STM32学会?从51<a href=http://www.diangongwu.com/zhishi/danpianji/ target=_blank class=infotextkey>单片机</a>转STM32的经验

如果确定要学习STM32,建议最开始购买一套开发板,为什么呢,因为自己做一块板子。对于初学者来说,自制开发板是很麻烦的事情,需要设计原理图。画pcb 自己购买元器件。焊接调试等一系列事情,肯定会遇到这样或者那样的问题出现,容易打击积极性。所以建议购买成熟的开发板,在硬件上省心,而且相对可以咨询同样学习这样开发板的人,利于后续解决问题。目前开发板好些比较出名的品牌,功能不要有多齐全,基本的按键,串口,显示屏,存储等,够用就行。

具体买回来开发板之后,要做什么呢?

首先需要搭建开发环境,目前主流是Keil与IAR,但个人喜好使用Keil一些. 一般买开发板,都会提供开发用的软件以及安装的教程,初学者只需要按照教程安装测试就可以了 好的,接下来做什么呢? 需要测试下开发板各个功能。

一般买开发板都会有资源包,里面包括各种资料和教程,以及各个功能的源代码,拿到开发板以后,先使用这些工程下载到板子里面,验证下板子功能是否正常,如果不正常还可以退换货,顺便也学习下如何keil 如何编译,烧录程序,有必要操作下如何进行仿真。

这里说下我觉得学stm32必须要有的资料,《Stm32系列ARM内核32位高性能微控制参考手册》,这个文件是对寄存器和时钟树详细说明,因为我开发基于寄存器操作。这个文件经常会用。另外就是对应的型号的芯片数据手册。这个手册是用来确定各个芯片引脚功能。

接下来开始自己的一个工程,先打开开发板的原理图,找到一个led灯的引脚,然后在写这个IO口高低电平的程序,

51单片机与stm32有很多差异,其中有一点就是时钟的部分,Stm32有比较复杂的时钟控制,系统时钟可以倍频,stm32还有比51复杂的总线构架和各个内部寄存的时钟控制器stm32内部的IO,串口,等模块都有自己的时钟控制,想要用哪个,都必须打开对应的时钟使能。时钟树和时钟控制,总线都在我上面提到的文件里面有详细表述。我这里不多说了。

怎么做才能将STM32学会?从51单片机转STM32的经验

开始第一个工程时候,先不急着配置stm32系统时钟,使用stm32默认的内部时钟,配置好io口的使能时钟,然后输出对应的高低电平,对于io口。先要知道输入输出的配置,这个是基础。

学完端口,可以开始配置外部时钟,倍频到一定工作频率

在学习串口。因为串口可以将代码中的信息打印出来。是一种比较方便的调试手段,所以这个部分很重要,其他的部分,我个人觉得可以结合自身的意愿和工作需要进行学习。这样Stm32就算入门了,

对于STM32的学习,其实有两个方向,寄存器操作以及库函数操作,对于这两种方向,各有优劣,寄存器学习,缺点是刚开始会比较慢,需要不断查看官方的寄存器手册,一点点调试,,但优点也很明显,后续的开发设计中会有明显的优势,就是代码可控,编写项目的代码构架可控,尤其是有些项目需要对STM32的flash容量有要求,或者有些项目需要单片机精准控制和高精度采集时,会有明显优势 我个人倾向于寄存器,原因是因为很多学STM32之前都接触过和学习过51系列单片机,代码实现都是基于寄存器操作,在编程思想上习惯使用寄存器, 磨刀不误砍柴功,当你将所需要的寄存器都写成对应的函数的时候,后续使用,只需要调用这个函数就可以了,可以说一次设计,终身有用, 前期慢一点,将STM32的功能理解的明明白白,后续的开发设计中,就更能得心应手,解决分析BUG时也更容易些。