STM32入门(1) STM32简介及准备工作

又是一年培训时。今年仍旧是作为电赛培训的一部分,由我来培训STM32的入门应用。之前类似的内容讲过很多遍了,现在也算是小有经验,于是趁热把自己培训中的重点写下来,以备他人查阅。

目录:

STM32入门(1) STM32简介及工程的建立

STM32入门(2) GPIO的输入与输出

STM32入门(3) 中断控制器NVIC的使用与外部中断EXTI

STM32入门(4) 使用定时器产生周期中断

STM32入门(5) 使用定时器产生PWM波

STM32入门(6) 使用ADC进行模数转换

STM32入门(7) 使用UART与上位机通信

 

我们为什么要学习单片机?

单片机,全称为“单片微型计算机”,是我们生活中各类电器中常见的器件之一。小到在电动剃须刀中控制开关和充电,大到在四轴飞行器中与遥控器通信、检测飞行器姿态并执行PID算法保证飞机的飞行稳定,这些都是单片机的应用。离我们最近的应用,就是我们在大学期间将要参加的各种各样的比赛。单片机最大的便利性,来源于它的可编程性。试想一下,如果在制作智能小车的时候,每改动一个逻辑,都需要改动电路板上的数字电路连接,那是多么令人抓狂的事情?但是,如果我们在使用单片机之后,我们只需要在保证外围电路的正常工作的情况下,对程序进行修改之后编译、下载,单片机就可以按照我们的意志改变它的行为,大大节省了我们的时间。于是,我们要学习单片机,并且很有必要学习单片机。

为什么选择STM32?

首先,因为ST官方对中国的开发者非常友好,常见的芯片手册,官方都有提供中文版,我们再也不用去啃一千多页的纯英文文档了,大大降低了我们学习的门槛;并且STM32芯片的价格在国内相对其他国外厂商非常低,开发板在淘宝上也是用非常平易近人的价格就唾手可得,是在是对学生党非常友好,加上ST官方在国内大力的推广,实在是我们学习的良好平台。

完善的生态环境也是我们选择STM32的另一个重要原因。如果用一个学弟的话说,“学长们用的程序都是STM32写的,我们改起来也方便”。拥有大量的例程,确实对快速开发起到了非常大的作用,并且网上也有很多成套的教学视频、教学手册,方便我们自学。

说完了客观原因,使用STM32的主观原因是它本身足够强。32位ARM高速内核,丰富的外设,都是我们选择它的原因。

学习STM32需要准备什么?

很简单,软件与硬件。软件就是集成开发环境与驱动程序,硬件就是开发板与调试器。开发环境方面,我们常见的是Keil与IAR两种。考虑到国内大环境与使用人群数,我们选用Keil作为开发环境。驱动程序主要是指调试器的驱动程序,调试器我们一般选用J-Link,当然ST-Link也是完全可以的,但是后面我会统一以J-Link为例来讲解。ST-Link相对J-Link最大的劣势就是速度慢以及只支持ST公司的芯片,在功能上二者别无二致。此外,我们还需要一个STM32开发板。我相信广大学生党在资金方便都不会太宽裕,因此我在后面使用的都是如下图所示的十几元就能购得的STM32F103C8T6最小系统。

STM32最小系统

STM32的型号具体指什么?

STM32的型号中的每一位都具有特定的意义。我们以STM32F103C8T6为例,来讲解每一位都有什么意义:

STM32:指ST公司推出的微控制器(Microcontroller)家族中32位的型号;

F:指通用型。除F之外,还有L低功耗型、H高性能型等。

103:单片机具体型号。对于STM32家族来说,有数百种的型号。103这三位数字中,1代表1系列,除此之外还有0-7等各个系列,基本上可以认为第一位数字越大,单片机的功能就越强,不过1系列的对我们学习已经完全够用;03代表细分系列,例如对于1这个大系列,101为基本型,102为连接型,103为增强型,105与107为互联型等。

C:数字型号后的第一位代表着这个芯片的引脚数。C为48脚,除此之外R为64脚,V为100脚,Z为144脚等。

8:数字型号后的第二位为芯片的ROM容量。8为64K,除此之外B为128K,C为256K,E为512K,G为1M等。

T:数字型号后的第三位为芯片的封装样式,T为LQFP(薄型四方扁平式封装)封装。

6:最后一位为芯片的 等级,6位商业级,7为工业级。我们用的一般都是商业级,温度范围相对工业级窄一些。

那我该如何开始呢?

很简单。针对STM32,ST官方已经推出了一套固件库,这一套固件库将对单片机内部天文数字级的寄存器的操作均封装成了标准的C语言函数,我们只需要调用这些函数,这些函数就会对底层硬件进行操作,来实现我们的功能。

那还等什么呢?让我们开始吧!

关于集成开发环境Keil的安装,在这里我就不进行赘述了,大家可以借助搜索引擎找到开发环境的安装程序及安装步骤。别忘了安装STM32F1的器件支持包!

我们在初学阶段时,并不需要了解一个新工程具体是怎么建立的。我为大家制作好了工程模板,这个工程模板里面包含了让程序能够在单片机上正确运行的最小程序,同时也包括了ST官方的固件库。大家只需要将工程模板下载之后并全部解压,打开其中PROJECT文件夹内的Template.uvprojx,即可打开工程,进入我们的开发之旅。

打开工程后,你看到的应该是如下图所示的界面。其中最左边的是工程栏,里面列出了工程中所有的文件。对于我们初学来说,目前只需要编辑USER文件夹中的main.c文件,因此请打开main.c文件,为后面的编程做好准备。

Keil界面

相信你已经看到图中我用红色标注出来的几个按钮了。请你记住这几个按钮的功能,后面我们还会经常使用它们。

现在,让我们点击全部编译按钮,如果你的Keil安装以及激活没有问题,并且你正确的安装了STM32F1的器件支持包,稍等片刻你应该会看到如下的提示,证明我的模板工程在你的电脑上编译成功,接下来我们就可以开启STM32学习之旅了。

编译成功
0

留下评论