STM32单片机入门例程(1.GPIO端口硬件结构)

文章目录

  • 前言
  • 一、STM32F10x芯片命名规则
  • 二、STM32F10x芯片内部资源
    • 1.内核
    • 2.调试模式
    • 3.内部总线
    • 4.中断控制器(NVIC)
    • 5.存储器
    • 6.时钟、复位和电源管理
    • 7.I/O端口
    • 8.外设
  • 三、STM32F10x芯片引脚定义
  • 四、STM32F10x芯片GPIO端口介绍
    • 1.GPIO(General Purpose Input Output)通用输入/输出口
    • 2.STM32F10x芯片GPIO端口简介
    • 3.GPIO端口功能模式
  • 总结


前言

本学期上单片机的时候32就只是笼统的学了一下,基本是在吃51的老底,今天写实验报告的时候就发现有很多地方学的并不扎实,本文作为我的查缺补漏和巩固复习同时,也希望为大家带来一定的帮助。

我现在用的是STM32F103ZE,在这里我就以这款开发板为大家介绍了。

提示:以下是本篇文章正文内容,下面案例可供参考

一、STM32F10x芯片命名规则

在STM32F10x芯片当中:
前五位是产品系列,STM32代表基于ARM的32位微处理器;
第六位是产品类型,F代表通用类型;
第七位到第九位是产品的子系列,共有101系列(基本型),102(USB基本型),103(增强型),105系列/107系列(互联型)等五种系列、四种类型;
第十位是芯片的引脚数,共有T(36个),C(48个),R(64个),V(100个),Z(144个)等五种;
第十一位是芯片的闪存容量,共有4(16K),6(32K),8(64K),B(128K),C(256K),D(384K),E(512K)等七种;
第十二位是芯片的封装型式,共有H(BGA),T(LQFP),U(VFQFPN),Y(WLCSP64)等四种形式;
第十三位是芯片的工作温度范围,分为商业级(以6表示,温度范围:以6表示,温度范围:-40 ~ 85℃)和工业级(以7表示,温度范围:-40 ~ 105℃)两种;
第十四位是内部代码,分为A和空两种(具体我也不是很清楚)。

大致情况如下图所示:

STM32单片机入门例程(1.GPIO端口硬件结构)_第1张图片

一般在实际使用过程中,只有第十位和第十一位,也就是引脚数和闪存容量需要我们注意一下。

二、STM32F10x芯片内部资源

1.内核

处理器为ARM 32位的Cortex™-M3 CPU;时钟最高工作频率为72MHz;采用单周期乘法和硬件除法,运行速度快。

2.调试模式

STM32的处理器Cortex-M3内嵌跟踪模块(ETM),支持JTAG和SWD(串行单线调试)两种调试方式。

3.内部总线

STM32的内部总线分为高性能总线(AHB)、系统总线(ASB)和外设总线(APB)。

APB分为APB1(低速)和APB2(高速)两种

4.中断控制器(NVIC)

STM32内置嵌套的向量式中断控制器,能够处理60个可屏蔽中断通道和16个优先级。

5.存储器

STM32拥有256K~512KB的闪存程序存储器(Flash)和高达64KB的SRAM存储器。

Flash相当于硬盘,具有非易失性,在没有电流供应的条件下也能够长久地保持数据;
SRAM具有静止存取功能的内存,不需要刷新电路就能保存其内部存储的数据,但一旦切掉电源其数据将丢失。

6.时钟、复位和电源管理

STM32单片机具有2.0 ~ 3.6V的供电和I/O引脚,上电复位(POR),断电复位(PDR),4 ~ 16MHz的晶体振荡器,内嵌8MHz/40kMz/32kHz的RC振荡器。

7.I/O端口

STM32f103ZE的I/O端口多达7组,共112个具有快速多功能的双向I/O端口(GPIOA-GPIOG),所有I/O口可以映像到16个外部中断;引脚电平为0V~3.3V,但几乎所有端口可容忍5V信号(在官方文件中,引脚说明图中带FT的引脚可容忍5V信号)。
相关的几页我为大家放在下面了(嘿嘿):

STM32单片机入门例程(1.GPIO端口硬件结构)_第2张图片
STM32单片机入门例程(1.GPIO端口硬件结构)_第3张图片
STM32单片机入门例程(1.GPIO端口硬件结构)_第4张图片
STM32单片机入门例程(1.GPIO端口硬件结构)_第5张图片
STM32单片机入门例程(1.GPIO端口硬件结构)_第6张图片
STM32单片机入门例程(1.GPIO端口硬件结构)_第7张图片

8.外设

STM内含多种外设:
(1)ADC:3个12位模数转换器 (多达21个输入通道);
(2)DAC:2 通道 12 位 D/A 转换器;
(3)DMA:12 通道 DMA 控制器(支持定时器、 ADC、 DAC、 SDIO、I2S、 SPI、I2C和USART );
(4)TIM:多达11个定时器(4个16位定时器、2个16位带死区控制和紧急刹车、 2个看门狗定时器、1个24位自减型系统时间定时器、2个16位基本定时器用于驱动DAC);
(5)通信接口:2个I2C接口、5个USART接口、3个SPI接口、CAN接口、USB 2.0全速接口、SDIO接口;

三、STM32F10x芯片引脚定义

STM32f103ZE的引脚分布图和原理图我放在下面了,每个端口的复用功能原理图中都有,我就不总结了,自行查看即可。
STM32单片机入门例程(1.GPIO端口硬件结构)_第8张图片
STM32单片机入门例程(1.GPIO端口硬件结构)_第9张图片
因为图片有可能会看不清所以我把原理图的下载链接放在下面了:
链接:https://pan.baidu.com/s/1dWx3PVouSOxgqrspMCFxbA?pwd=06a6
提取码:06a6

四、STM32F10x芯片GPIO端口介绍

1.GPIO(General Purpose Input Output)通用输入/输出口

GPIO 是通用输入/输出(General Purpose Input Output)的简称。可以实现驱动外部电路(输出)、检测外来信号(输入)以及模拟一些通信接口通信等功能,是单片机和外界进行通信的必要通道(MCU 只要是和外界的设备进行数据交换都是需要通过 GPIO 端口来完成的)。 GPIO 端口和外界通信都是通过TTL 数字电平(高电平或者低电平)来进行数据交换的, 高电平代表数字“1”, 低电平代表数字“0”。

GPIO 端口的输入和输出方向是站在 MCU 的角度来判断,数据从芯片内部往芯片外部传输的过程,称为输出,数据从芯片外部往芯片内部的传输过程,称为输入。

2.STM32F10x芯片GPIO端口简介

以STM32f103ZE为例,该芯片一共有7组GPIO端口(GPIOx,x=A~G),每组有16个输入/输出口(Px0 ~ Px15)。

例如:GPIO A组编号15的端口,则使用PA15或PA.15或GPIOA.15来表示。

每个GPIO端口(16位)都有下列32位寄存器:
2个端口配置寄存器( GPIOx _CRL、GPIOx _CRH );
2个端口数据寄存器( GPIOx _IDR、GPIOx _ODR );
1个端口位设置/清除寄存器(GPIOx_BSRR):设置/清除ODR;
1个端口位清除寄存器(GPIOx_BRR):清除ODR ;
1个端口配置锁定寄存器(GPIOx_LCKR)。

3.GPIO端口功能模式

每个GPIO端口都具有8种 功能模式,分别是上拉输入,下拉输入,浮空输入,模拟输入,推挽输出,开漏输出,复用推挽输出,复用开漏输出。STM32单片机入门例程(1.GPIO端口硬件结构)_第10张图片
我们可以根据不同情况选择不同的功能模式。
STM32单片机入门例程(1.GPIO端口硬件结构)_第11张图片

总结

GPIO是通用输入输出端口,它占据了单片机绝大部分引脚,是单片机与外设进行数据交换的通道;每一个端口既可以设置为输入口,也可以设置为输出口,因此GPIO也称作是可编程端口。对GPIO端口的所有操作,实际上就是靠其配置的寄存器来完成。

你可能感兴趣的:(stm32,单片机,嵌入式硬件)