STM32 GPIO

发布于:2025-07-22 ⋅ 阅读:(11) ⋅ 点赞:(0)

## 一、GPIO简介

### 1、什么是GPIO

GPIO(General-purpos Input/Output)通用输入输出口

作用:

采集外部的器件信息(输入):麦克风、按键

控制外部的器件工作(输出):LED、蜂鸣器

GPIO是所有微控制器必不可少且常用的外设接口。

预研发:需要用万用表对所有GPIO进行测量

### 2、STM32F407ZE的GPIO

1、STM32中144个引脚114 =  16X7+2

GPIO引脚划分为:(A..H),每组GPIO有16个脚位,H组仅有0.1两个脚位

命名:PXY(X代表组号,Y代表端口号)

2、GPIO的工作模式

输入模式:

上拉输入:脚位空闲时,读取数据是高电平

下拉输入:脚位空闲时,读取数据是低电平

模拟输入:用于ADC采集

浮空输入:脚位空闲时,读取的数据不确定

输出模式:

推挽输出:可以输出高电平和低电平

开漏输出:可以输出低电平,但是不能输出高电平,加上拉电路

复用推挽输出:片上外设SPI

复用开漏输出:片上外设IIC

高电平:VDD*0.7 = 3.3Vx0.7=2.3V

低电平:VDD*0.3 = 3.3Vx0.3=0.99V

## 补充:keil5软件的部分问题

1、中文乱码问题

Edit-->Configuration-->Encoding-->Chinese GB2312(Simp..)

2、代码不提示问题

Configuration-->Text Compliton-->Function Parameters

3、内部上拉/下拉和外部上拉/下拉优缺点?

优点:节省PCB空间  缺点:不能更换

优点:随时修改更新参数 缺点:不能省PCB空间

## 二、时钟

1、时钟的概念

原则:处理器内核是要在时钟的驱动下才能完成指令,状态转换,且芯片内部有很多的外设模块,比如说GPIO,UART,这些模块彼此的协同工作,是要时钟来智慧运行。

芯片内部有很多的外设,这些端口在不使用/才上电的时候往往处于关闭状态,这些内部功能启动与关闭,不是借助传统的开关量。而是通过时钟去控制的。如果打开了某个时钟,某个模块才能打开,否则,关闭。

问题:既然功能模块的开启需要时钟,那么由谁来提供?

答案:时钟总线

问题:STM32F407ZE内部总线有什么?

高级高速总线

AHB1(频率168MHz)

AHB2(频率168MHz)

高级外设总线

APB1(频率42MHz)

APB2(频率84MHz)

拓展:

1、标准库函数的命名规律:标准的外设名_函数功能

2、函数传参的规律:形参名_XXX

3、标准的外设初始化结构体规律:标准的外设名称_InitTypeDefine

## 课堂案例:驱动蜂鸣器发声

1、查看原理图                          BEEP--20--PF8                  

2、设置功能脚位                      GPIO输出模式            

3、分析电路获得控制逻辑        高电平发声

4、软件实现

4.1 对应使能GPIO时钟

4.2 设脚位功能

4.3 初始化脚位设置

4.4 根据控制逻辑完成外设控制

## 三、模块化编程

1、以BEEP代码为例,首先在BEEP文件夹内部新建一个文件夹叫HARDWARE

2、打开工程,右键Target 1添加Add group,一个新组并改名HARDWARE,在工程内的名字与第1步新建的名字一样

3、打开魔术棒按钮,选择C/C++,选择include Pahts添加HARDWARE文件形成依赖关系

4、右键点击HARDWARD新建.c和.h,注意:在新建.c和.h时候,一定包含HARDWARE路径


网站公告

今日签到

点亮在社区的每一天
去签到