全站数据
8 4 2 0 5 8 1

gpio端口复用和初始化先后顺序

经济乐分享 | 简单学习,快乐成才!         
问题更新日期:2024-10-28 08:48:37

问题描述

gpio端口复用和初始化先后顺序求高手给解答
精选答案
最佳答案

STM32

有好几个串口。比如说

STM32F103ZET6

有

5

个串口,串口

1

的引脚

对应的

IO

为

PA9

PA10.PA9

PA10

默认功能是

GPIO

所以当

PA9

PA10

引脚作为串口

1

的

TX

RX

引脚使用的时候,那就是端口复用。

复用端口初始化有几个步骤:

1

)

GPIO

端

口

时

钟

使

能

要

使

用

到

端

口

复

用

当

然

要

使

能

端

口

的

时

钟

了

RCC_APB2PeriphClockCmd

(

RCC_APB2Periph_GPIOA

ENABLE

)

2

)

复用的外设时钟使能。比如你要将端口

PA9

PA10

复用为串口,所以要使能串口时

钟。

RCC_APB2PeriphClockCmd

(

RCC_APB2Periph_USART1

ENABLE

)

3

)

端口模式配置。

在

IO

复用位内置外设功能引脚的时候,

必须设置

GPIO

端口的模式,

至于在复用功能下

GPIO

的模式是怎么对应的,这个可以查看手册。

所以,我们在使用复用功能的是时候,最少要使能

2

个时钟:

1

)

GPIO

时钟使能

2

)

复用的外设时钟使能

同时要初始化

GPIO

以及复用外设功能

串口设置的一般步骤可以总结为如下几个步骤:

1

)

串口时钟使能,

GPIO

时钟使能

2

)

串口复位

3

)

GPIO

端口模式设置

4

)

串口参数初始化

5

)

开启中断并且初始化

NVIC

(如果需要开启中断才需要这个步骤)

6

)

使能串口

7

)

编写中断处理函数

端口重映射:

(暂略)

中断量控制:

STM32

有

84

个中断,包括

16

个内核中断和

68

个可屏蔽中断,具有

16

级可编程的中断

优先级。而我们常用的就是这

68

个可屏蔽中断,但是

STM32

的

68

个可屏蔽中断,在

其他回答

在使用GPIO端口时,需要先进行端口复用的配置,然后再进行端口的初始化。这是因为端口复用的配置会影响到端口的功能和电气特性,而端口初始化则是针对具体的应用场景进行的配置,需要在端口复用配置完成后才能进行。

具体来说,GPIO端口复用是指将GPIO端口的引脚功能切换为其他功能,例如将GPIO引脚配置为UART、SPI、I2C等通信接口的数据线。在进行端口复用时,需要通过修改GPIO端口的复用寄存器来实现。这些寄存器通常包括AFR(复用功能寄存器)、MODER(模式寄存器)等。在进行端口复用配置时,需要先确定所需的复用功能,并根据复用功能的要求来设置相应的寄存器值。

而GPIO端口初始化则是指根据具体应用场景来配置GPIO端口的工作模式、输入/输出模式、上拉/下拉电阻等参数。在进行端口初始化时,需要先确定所需的工作模式和参数,并根据这些参数来设置相应的寄存器值。常见的GPIO初始化参数包括MODER(模式寄存器)、OTYPER(输出类型寄存器)、OSPEEDR(输出速度寄存器)、PUPDR(上拉/下拉寄存器)等。

因此,在使用GPIO端口时,应该先进行端口复用的配置,然后再进行端口的初始化。这样可以确保端口的功能和电气特性得到正确的配置,从而保证系统的正常运行。

其他回答

根据GPIO端口复用和初始化的使用场景不同,端口复用和初始化的先后顺序也不同。

但一般来说,先进行端口复用,再进行初始化,这是一个比较合理的顺序。

具体如下:

1. 基于实践和理论,GPIO端口复用和初始化的先后顺序应当先进行端口复用,再进行初始化。

2.首先,进行端口复用是为了将物理上的GPIO端口转化为逻辑上的端口,从而提高GPIO的使用效率,同时避免不必要的冲突。

其次,在初始化前进行端口复用,也可以有效地保证GPIO的安全性和稳定性。

最后,在进行初始化的时候,应当根据所需的操作模式进行相应的初始化设置,从而真正实现GPIO的功能。

3.但是,在某些特殊情况下,需要根据具体的使用需求,来确定端口复用和初始化的先后顺序。

例如,如果需要使用PWM功能,那么就需要先进行初始化设置,再进行端口复用。

因此,在使用GPIO端口复用和初始化的过程中,需要具体问题具体分析,并根据需求进行相应的操作。

随机推荐