发新帖我要提问
12
返回列表
打印
[信息]

GPIO_Init()函数的理解

[复制链接]
楼主: cr315
手机看帖
扫描二维码
随时随地手机跟帖
21
通过GPIO_Init()函数对这些参数进行配置后,才会按照你的设定来改变GPIO的工作状态。

使用特权

评论回复
22
adolphcocker| | 2024-1-13 12:36 | 只看该作者
该函数的一般使用格式如下(以标准库为例):

C
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
其中:

GPIOx 是要配置的GPIO端口。
GPIO_InitStruct 是指向一个包含所需配置信息的结构体指针,通常需要在调用前填充此结构体的各项参数,包括GPIO端口的模式(输入/输出)、速度、输出类型(推挽/开漏)、上拉/下拉等。

使用特权

评论回复
23
kmzuaz| | 2024-1-13 13:15 | 只看该作者
对于STM32F103系列来说,GPIO端口的默认状态通常是模拟输入(AIN),且没有内部上下拉或上拉电阻激活。如果需要改变这些设置以适应特定应用需求,如将其配置为通用输出、输入带上下拉、重映射到某个外设功能等,则必须通过GPIO_Init()函数或其他对应的库函数进行明确的配置。

使用特权

评论回复
24
mattlincoln| | 2024-1-13 13:28 | 只看该作者
STM32的GPIO端口会保持复位后的默认状态。

使用特权

评论回复
25
benjaminka| | 2024-1-13 14:01 | 只看该作者
在调用GPIO_Init()函数之前, 正确配置了RCC(复位和时钟控制)寄存器,以使GPIO配置生效。

使用特权

评论回复
26
loutin| | 2024-1-13 14:10 | 只看该作者
在GPIO_Init()函数执行后,相应的GPIO端口将被配置为您在CubeMX中设置的模式、速率等参数。

使用特权

评论回复
27
houjiakai| | 2024-1-13 16:55 | 只看该作者
这个函数主要接受两个参数:一个是配置引脚组(GPIO_TypeDef* GPIOx),另一个是配置的参数( GPIO_InitTypeDef* GPIO_InitStruct)。其中,GPIOx可以是A,B,C,D或者E,用来选择对应的GPIO外设;GPIO_InitStruct是一个指向结构GPIO_InitTypeDef的指针,该结构包含了所选GPIO外设的配置信息,如管脚号、速度和模式等。

使用特权

评论回复
28
1988020566| | 2024-1-14 22:26 | 只看该作者
GPIO_InitTypeDef GPIO_InitStructure;
// 使能GPIO端口的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 初始化GPIOB端口0为推挽输出模式,速度为2MHz
GPIO_InitStructure.GPIOPin = GPIO_Pin_0;
GPIO_InitStructure.GPIOMode = GPIO_Mode_Out_PP; // 推挽输出
GPIO_InitStructure.GPIOSpeed = GPIO_Speed_2MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// 初始化GPIOB端口1为开漏输出模式,速度为2MHz
GPIO_InitStructure.GPIOPin = GPIO_Pin_1;
GPIO_InitStructure.GPIOMode = GPIO_Mode_Out_OD; // 开漏输出
GPIO_InitStructure.GPIOSpeed = GPIO_Speed_2MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则