STM32单片机GPIO的配置模式

发布者:智慧启迪最新更新时间:2024-09-26 来源: elecfans关键字:STM32  单片机  GPIO  配置模式 手机看文章 扫描二维码
随时随地手机看文章

1. 操作GPIO的意义

我们在学习单片机的时候,一般都是从操作GPIO开始的,很多单片机学习的教程第一课就是点亮发光二极管或者是流水灯。所以对于初学者而言,及时掌握单片机的GPIO口是一件具有里程碑意义的事情。今天以STM32单片机为例,简单看一下GPIO口。


2. STM32单片机GPIO的配置模式

STM32单片机的GPIO最有8组,分别为A,B,C,D,E,每组有0-15共16个。可以配置为8中模式:

1.jpg?imageView2/2/w/1000

3. 相关寄存器

配置GPIO相关的寄存器有如下几个:

1.端口配置低寄存器:(GPIOx_CRL) (x=A..E)

2.端口配置高寄存器:(GPIOx_CRH) (x=A..E)

3.端口输入数据寄存器:(GPIOx_IDR) (x=A..E)

4.端口输出数据寄存器:(GPIOx_ODR) (x=A..E)

其余未完全列出... ...

图片

GPIOx_CRL用来配置0-7脚的输入输出模式,GPIOx_CRH用来配置8-15脚的输入输出模式。

图片

GPIOx_IDR是GPIO的输入寄存器,即用来检测GPIO当前的状态。其读取方式如下(以PA1为例):

GPIOA->DIR&(1<<1)

图片

GPIOx_ODR是GPIO的输出寄存器,即用来置位或者清零GPIO。其操作方式如下(以PA1为例):

PA1 = 1:GPIOA->OIR |= (1<<1) ;

PA1 = 0:GPIOA->OIR &=~(1<<1) ;

4. GPIO口的操作步骤

任何事情都是有套路的,操作GPIO也是一样:

打开GPIO时钟

设置为输出或者输入(即设置方向);

开出或者读入;


关键字:STM32  单片机  GPIO  配置模式 引用地址:STM32单片机GPIO的配置模式

上一篇:在学习STM32时为什么要学习汇编?
下一篇:基于STM32设计的智能灌溉控制系统

推荐阅读最新更新时间:2026-03-24 11:33

STM32单片机GPIO配置模式
1. 操作GPIO的意义 我们在学习单片机的时候,一般都是从操作GPIO开始的,很多单片机学习的教程第一课就是点亮发光二极管或者是流水灯。所以对于初学者而言,及时掌握单片机的GPIO口是一件具有里程碑意义的事情。今天以STM32单片机为例,简单看一下GPIO口。 2. STM32单片机GPIO的配置模式 STM32单片机的GPIO最有8组,分别为A,B,C,D,E,每组有0-15共16个。可以配置为8中模式: 3. 相关寄存器 配置GPIO相关的寄存器有如下几个: 1.端口配置低寄存器:(GPIOx_CRL) (x=A..E) 2.端口配置高寄存器:(GPIOx_CRH) (x=A..E) 3.端口输入数据寄存器:(GPI
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font><font color='red'>GPIO</font>的<font color='red'>配置</font><font color='red'>模式</font>
STM32 GPIO模式配置
F103系列 typedef struct { uint16_t GPIO_Pin; /*! Specifies the GPIO pins to be configured. This parameter can be any value of @ref GPIO_pins_define */ GPIOSpeed_TypeDef GPIO_Speed; /*! Specifies the speed for the selected pins. This parameter can be a value of @ref GPIOS
[单片机]
单片机STM32的几种输入模式以及外部中断的配置
最近做毕业设计,需要用按键来触发外部中断。实验的时候是正常的,但是换了个核心板以及用上自己做的PCB电路板后,出现了一些问题。问题如下: 要求:将连接按键的IO口配置为上拉输入,按键一端接IO口,一端接地,即当按键按下后,该IO口会产生一个下降沿,触发下降沿中断。 问题:将相应的IO口配置好后,测了引脚的的电压,并不是3.3V左右,而是0.1V左右。于是猜想: 1. 外围电路对IO口产生了影响。 2. STM32 内部上拉能力较弱,一次只能上拉一个IO口。 于是开始从这两个想法着手解决。首先第一个,很容易就排除了。将外围电路撤掉,我用的是杜邦线,直接拔掉测量引脚上的电压,依然是0.1V左右,于是第1个猜想排除。
[单片机]
stm32f103 GPIO——一灯大师之I/O口输出模式的寄存器配置
在讲述寄存器配置之前,我们先来看看二进制中,在不改变其他位的条件下,对某个位的置1和清零。 先看口诀: 清零用& (对某一位,进行 与 操作。与0相与,会清零。与1相与,不改变) 置1用 | (对某一位,进行 或 操作。与0相或,不改变。与1相或,会置1) 例如: 二进制:0001 1100,我想要在不改变其他位的情况下,将第四位清零。因为,清零用&,与0相与,会清零,与1相与,不改变。所以: 0001 1100 & ~(0x01 3) == 0001 0100 注意:0x01 3 == 0000 1000(这里由于要和8位的二进制数相与,所以这里会自动扩展成8位)(而且注意这里
[单片机]
stm32f103 <font color='red'>GPIO</font>——一灯大师之I/O口输出<font color='red'>模式</font>的寄存器<font color='red'>配置</font>
STM32定时器配置为编码器模式
一、编码器原理 如果两个信号相位差为90度,则这两个信号称为正交。由于两个信号相差90度,因此可以根据两个信号哪个先哪个后来判断方向、根据每个信号脉冲数量的多少及整个编码轮的周长就可以算出当前行走的距离、如果再加上定时器的话还可以计算出速度。 二、为什么要用编码器 从上图可以看出,由于TI,T2一前一后有个90度的相位差,所以当出现这个相位差时就表示轮子旋转了一个角度。但有人会问了:既然都是脉冲,为什么不用普通IO中断?实际上如果是轮子一直正常旋转当然没有问题。仔细观察上图,如果出现了毛刺呢?这就是需要我们在软件中编写算法进行改正。于是,我们就会想到如果有个硬件能够处理这种情况那不是挺好吗? 对应的硬件的编码器就来了
[单片机]
<font color='red'>STM32</font>定时器<font color='red'>配置</font>为编码器<font color='red'>模式</font>
STM32的启动模式配置与应用
三种BOOT模式 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。 Main Flash memory 是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。 System memory 从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序, 这是一块RO
[单片机]
如何将安全LPC804 MCU芯片配置编程呢?仅可通过ISP模式么?
LPC804 MCU具有CRP(代码读取保护)功能。 该CRP位于地址0x0000 02FC,并且存在NO_ISP/CRP1/CRP2/CRP3这些不同的安全级别。 如何将安全配置编程呢?仅可通过ISP模式么? 也可以在项目工程,如下图 MCUXpresso IDE中配置, 使能 CRP: 在 MCUXpresso 工程里面配置CRP。 •定义设置适当的 CRP值 •使用自定义脚本配置链接器以将该常量放置在CRP内存地址(0x2FC),下面定义分配给其所需CRP级别的常量。attribute 指令确保链接器将常量(CRP_WORD)放置在内存的特殊“.crp”部分中,参考代码如下。 #define CRP_NO_CR
[单片机]
如何将安全LPC804 <font color='red'>MCU</font>芯片<font color='red'>配置</font>编程呢?仅可通过ISP<font color='red'>模式</font>么?
单片机引脚模式配置
单片机STM32的引脚有多种方式可以选择。 如果你是用直接写寄存器来配置的话,那么,看上手册,给“配置寄存器”对应的位写0或者1就可以达到目的。如下图: 如果是用库函数来配置的话,就需要知道下面这个结构体中的变量代表的意义。 库函数,选择好GPIO_Mode之后,就要使用GPIO_Init()函数来配置,你可以打开这个配置函数,实际上也是在对“配置寄存器”进行写操作。 先解释一下这个结构体中的各个变量的意思: GPIO_Mode_AIN:模拟输入模式 GPIO_Mode_IN_FLOATING:浮空输入模式 GPIO_Mode_IPD:下拉输入模式 GPIO_Mode_IPU:上拉输入模式 GPIO_Mode_Ou
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved