找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4359|回复: 0
收起左侧

STM32单片机学习笔记

[复制链接]
ID:101489 发表于 2016-1-4 01:19 | 显示全部楼层 |阅读模式
前言和学习过程
寒假开始的任务是学习STM32单片机,刚拿到了微云电子的学习板并加入了微云电子STM32学习群中,下载了一些资料,并知道了该单片机学习板的主芯片为STM32F0系列,十分感谢老师给我学习的机会。
我学习时候,以看老师的学习开发手册和STM32的视频为主,并配上STM32芯片手册,由于自己英语学的不错,偶尔打开Wikipedia英文版和百度百科学习一些新知识。
第一章和第二章 开发板体验和简介
我认为这部分内容已经讲的很明确了,可以作为科普读物,详细地了解板子及其强大的功能,暂时无需太多补充。
第三章 电路原理
电路外设的介绍在开发板手册中已经十分清楚,这里补充一些原理和原因。
3.1 工作原理图的使用
面对这个功能强大却又让人陌生的STM32开发板,可不要望而却步,而要知道STM32开发板有什么功能,以及自己的知识框架中少了什么,然后要明白应该去学习哪些知识才可以攻克它。
知己知彼,百战不殆。其中电路工作原理图,就如同古代行军打仗的地图,你在看完电路图后,就可以知道开发板的引脚及其对应元器件分配,就如图打仗时候,在地图上标出敌军的具体部署,从而有目的的逐一击破。那么这里,我们先找到《STM32+Linux原理图.pdf》,打开看:





图1.STM32芯片外设原理图
上图可谓是重中之重,想要学明白我们的微云电子开发板,该文件必不可少,而在该文件中这张图必不可少,通过它,我们便明白了到底很多外设,例如Led、电源、LCD这些器件到底和谁连一块,这决定了我们之后的程序怎么写,如果不理解这段话,下面会详细再介绍。
3.2硬件载体选择:开发板VS面包板
有些人可能很不解,为什么我们程序一定要那么写?(如:为什么Led一定和PA12有关而不写PA11口呀?)或者说,为什么为什么Led就不能和其它的GPIO口“联谊”,让它们来输出?
由于我们使用的是微云电子的STM32开发板是PCB(Printed Circuit Board)印制电路板,开发板与面包板不同之处在于,开发板已经将所有的器件焊接完成,即电路是已经完全被确定,且一一对应好的;面包板是可以更改的,按照自己的意愿来完成电路的设计,但是电路可能不稳定,而且要很长的时间来搭建。
因此为了学习以及使用方便,我们还是用PCB。既然开发板上已经定死了引脚和外设的关系,在学习该开发板应该多多翻阅《STM32+Linux原理图.pdf》。
3.3 STM32介绍
我们在单片机里使用的是STM32F051C8T6,它是我们开发板的核心,也就是开发板上电子器件的老大,“擒贼先擒王!”。想要了解我们的这款开发板,其实也就是一直在学习STM32,怎么利用其他的小弟器件和它进行配合。
要想详细地了解STM32,首先应该查其对应的DATASHEET,因为这毕竟是它们公司的出品,最最详细地介绍了这款单片机。下面就通过翻译,来介绍下我们微云电子STM32开发板上的这款单片机。
3.3.1 单片机命名法则





图2.STM32命名实例图
每个单片机的名字可不是随便取的,它可是有自己的命名法则的,所以我们一开始得先知道为什么我们的单片机叫STM32F051C8T6。
结合上图翻译一下,来解释一下我们的单片机STM32F051C8T6。
“STM32”是意法半导体的一款基于ARM的32位单片机,32位一听就是高大上,完虐8位的80C51或者是它的同门师弟STM8;
“F”指的是一般用途的单片机,就是比较适合民用,这样价格不高,我们才可以消费得起;
“051”是子家族的意思,具体没去查,就是它们公司自己的一个分配;
“C”指的是有48个引脚的封装类型,所以我们的单片机正好四四方方的每边12个引脚;
“8”指的是有64KB的闪存空间,是STM32这几个款式中闪存空间的最大的一款,足够你用了!;
“T”指的是,采用了LQFP封装,不用深究;
“6”指的是,该款单片机适合在-40℃到+85℃的环境下工作。
而由于STM32F051C8T6上没有对应Options的字母,所以并不知道该选项,但是无关紧要,完全不影响我们的
那么,讲了它名称由来后,我们从应该已经宏观上了解这款单片机了吧,接下来讲讲引脚,进一步理解它!

3.3.2 引脚介绍
首先看一下,我们微云电子的STM32开发板上的单片机STM32F051C8T6俯视图:





图3.开发板STM32单片机俯视图
接着,我们详细地介绍一下我们这款单片机的引脚分配,为大家揭开我们开发板上STM32的神秘面纱!(在这里仅截取微云电子开发板上STM32F051C8T6的相关引脚,原创翻译,部分内容与STM32中文手册略有差异)
表1.STM32F051C8T6的引脚定义表
引脚号
引脚名称(复位后的功能)
引脚类型
I/O结构
复用功能
附加功能
备注
1
VBAT
S

备用电源

2
PC13
I/O
TC
-
RTC_TAMP1, RTC_TS,RTC_OUT, WKUP2
(1)(2)
3
PC14-OSC32_IN(PC14)
I/O
TC
-
OSC32_IN
(1)(2)
4
PC15-OSC32_OUT(PC15)
I/O
TC
-
OSC32_OUT
(1)(2)
5
PF0-OSC_IN(PF0)
I/O
FT
-
OSC_IN

6
PF1-OSC_OUT(PF1)
I/O
FT
-
OSC_OUT

7
NRST
I/O
RST
器件复位输入 / 内部复位输出(低电平有效)

8
VSSA
S

模拟地

9
VDDA
S

模拟电源

10
PA0
I/O
TTa
USART2_CTS, TIM2_CH1_ETR,
COMP1_OUT, TSC_G1_IO1
ADC_IN0, COMP1_
INM6, RTC_TAMP2,
WKUP1

11
PA1
I/O
TTa
USART2_RTS, TIM2_CH2, TSC_
G1_IO2, EVENTOUT
ADC_IN1, COMP1_INP

12
PA2
I/O
TTa
USART2_TX, TIM2_CH3, TIM15_
CH1,  COMP2_OUT, TSC_G1_IO3
ADC_IN2, COMP2_
INM6

13
PA3
I/O
TTa
USART2_RX, TIM2_CH4, TIM15_
CH2, TSC_G1_IO4
ADC_IN3, COMP2_INP

14
PA4
I/O
TTa
SPI1_NSS/I2S1_WS, USART2_
CK, TIM14_CH1, TSC_G2_IO1
ADC_IN4, COMP1_
INM4, COMP2_INM4,
DAC1_OUT

15
PA5
I/O
TTa
SPI1_SCK/I2S1_CK, CEC, TIM2_
CH_ETR, TSC_G2_IO2
ADC_IN5, COMP1_
INM5, COMP2_INM5

16
PA6
I/O
TTa
SPI1_MISO/I2S1_MCK, TIM3_
CH1, TIM1_BKIN, TIM16_CH1,
COMP1_OUT, TSC_G2_IO3,
EVENTOUT
ADC_IN6

17
PA7
I/O
TTa
SPI1_MOSI/I2S1_SD, TIM3_
CH2, TIM14_CH1, TIM1_CH1N,
TIM17_CH1, COMP2_OUT, TSC_
G2_IO4, EVENTOUT
ADC_IN7

18
PB0
I/O
TTa
TIM3_CH3, TIM1_CH2N, TSC_
G3_IO2, EVENTOUT

ADC_IN8

19
PB1
I/O
TTa
TIM3_CH4, TIM14_CH1, TIM1_
CH3N, TSC_G3_IO3
ADC_IN9

20
PB2
I/O
FT
TSC_G3_IO4
-

21
PB10
I/O
FT
I2C2_SCL,
CEC,
TIM2_CH3,
TSC_SYNC
-

22
PB11
I/O
FT
I2C2_SDA,
TIM2_CH4,
TSC_G6_IO1,
EVENTOUT
-

23
VSS
S

数字地

24
VDD
S

数字电源

25
PB12
I/O
FT
SPI2_NSS, TIM1_BKIN, TSC_
G6_IO2, EVENTOUT
-

26
PB13
I/O
FT
SPI2_SCK, TIM1_CH1N, TSC_
G6_IO3
-

27
PB14
I/O
FT
SPI2_MISO, TIM1_CH2N, TIM15_
CH1, TSC_G6_IO
-

28
PB15
I/O
FT
SPI2_MOSI, TIM1_CH3N, TIM15_
CH1N, TIM15_CH2
RTC_REFIN

29
PA8
I/O
FT
USART1_CK, TIM1_CH1,
EVENTOUT, MCO
-

30
PA9
I/O
FT
USART1_TX,
TIM1_CH2,
TIM15_BKIN,
TSC_G4_IO1
-

31
PA10
I/O
FT
USART1_RX,
TIM1_CH3,
TIM17_BKIN,
TSC_G4_IO2
-

32
PA11
I/O
FT
USART1_CTS,
TIM1_CH4,
COMP1_OUT,
TSC_G4_IO3,
EVENTOUT
-

33
PA12
I/O
FT
USART1_RTS,
TIM1_ETR,
COMP2_OUT,
TSC_G4_IO4,
EVENTOUT
-

34
PA13(SWDIO)
I/O
FT
IR_OUT,
SWDIO
-
(3)
35
PF6
I/O
FTf
I2C2_SCL
-

36
PF7
I/O
FTf
I2C2_SDA
-

37
PA14(SWCLK)
I/O
FT
USART2_TX,
SWCLK
-
(3)
38
PA15
I/O
FT
SPI1_NSS,
I2S1_WS,
USART2_RX,
TIM2_CH1_ETR,
EVENTOUT
-

39
PB3
I/O
FT
SPI1_SCK,
I2S1_CK,
TIM2_CH2,
TSC_G5_IO1,
EVENTOUT
-

40
PB4
I/O
FT
SPI1_MISO,
I2S1_MCK,
TIM3_CH1,
TSC_G5_IO2,
EVENTOUT
-

41
PB5
I/O
FT
SPI1_MOSI,
I2S1_SD,
I2C1_SMBA,
TIM16_BKIN,
TIM3_CH2
-

42
PB6
I/O
FTf
I2C1_SCL,
USART1_TX,
TIM16_CH1N,
TSC_G5_IO3
-

43
PB7
I/O
FTf
I2C1_SDA,
USART1_RX,
TIM17_CH1N,
TSC_G5_IO4
-

44
BOOT0
I
B
Boot memory selection

45
PB8
I/O
FTf
I2C1_SCL,
CEC,
TIM16_CH1,
TSC_SYNC
-
(3)
46
PB9
I/O
FTf
I2C1_SDA,
IR_OUT,
TIM17_CH1,
EVENTOUT
-

47
VSS
S

数字地

48
VDD
S

数字电源

表1中有太多英文缩写,下面就由下表来解释一下,其中的缩写是什么意思:
表2. 引脚表的标记与缩写解释
名称
缩写
定义
引脚名
除非在指定的引脚名称下面有括号说明,在复位期间和之后,引脚作为实际使用的功能与引脚名称相同。
引脚类型
S
电源引脚

I
仅是输入口

I/O
输入/输出双向口
I/O结构
FT
5V容忍能力I/O

FTf
5V容忍能力I/O,附加 FM+ 能力

TTa
3.3V容忍能力的I/O直接连接到ADC

TC
标准3.3VI/O

B
专用BOOT0引脚

RST
双向复位引脚,并嵌入弱上拉电阻
注释
除非注释中提到,否则所有I/O口在复位期间和复位后,认为是浮空输入。
引脚功能
复用功能
通过 GPIOx_AFR寄存器选择的功能

附加功能
通过外设寄存器直接选择/使能的功能
在表1中,我们看到注释里有些引脚后面带有(1)~(3),这些注释如下:
(1).PC13, PC14 和PC15需要通过电源开关来供能,由于电源开关吸收仅3mA大小的电流,所以说,PC13, PC14 和PC15 这三个GPIO口的输出模式受限:速度不可超过2 MHz,并且最大带一个30pF的负载,最关键的是这几个GPIO口禁止作为电流源(比如去点亮LED灯)。
(2).第一次实时时钟域上电后,PC13, PC14 和PC15口可以作为GPIO口来使用。它们的功能取决于实时时钟寄存器,而且这个部分的设置不会受到总复位的影响,详细请参考实时时钟域和实时时钟寄存器的描述手册。
(3) .在复位后,一些引脚被置成SWDIO和SWCLK这些备用功能,而且SWDIO的内部上拉和SWCLK的内部下拉功能被激活打开。
3.3.3 选择微云电子STM32开发板的原因
功能强大:为什么选择微云电子学习STM32单片机?这是因为从前面的介绍,或许我们已经发现STM32的高大上了,80C51可以做的,STM32都能完成,可以理解成STM32就是80C51不断进化,进化进化最终质变,虽然说现在80C51运用范围还是很广的,但是一旦遇到一些大工程,这款8位单片机便死翘翘了。尤其是随着时代的发展,智能家居已经成为显示,虽然还没有真正火起来,但是正如初生的旭日,越来越亮,它的前景可想而知。那时候,我想生产智能家居的单片机要更加高端,而不是80C51。我们知道80C51没有如ADC、内部时钟、温度传感器等等重要的功能,如果说它有的话,那就是外接了上去,这样浪费时间还浪费钱,多不划算!但是我们强大的STM32都已经给你备齐,请君使用!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表