硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4044|回复: 8
收起左侧

[有问必答] STM32F1怎样对某个管脚重新初始化?

[复制链接]

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2018-8-7 17:18:32 | 显示全部楼层 |阅读模式
对于一个GPIO,一开始初始化成普通的推挽输出管脚,然后又需要将其初始化成复用推挽输出。在这个过程中,怎样将管脚恢复成默认状态?库里面只有void GPIO_DeInit(GPIO_TypeDef* GPIOx);这个函数。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-8-7 17:51:18 | 显示全部楼层
这个函数GPIO_AFIODeInit可以,不过引脚都被复位了。
回复

使用道具 举报

36

主题

1445

回帖

1553

积分

至尊会员

积分
1553
发表于 2018-8-7 19:42:40 | 显示全部楼层
重新配置一遍就可以了吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-8-8 02:26:32 | 显示全部楼层
sanit 发表于 2018-8-7 19:42
重新配置一遍就可以了吧

我印象中是不行的,因为F1没有F4那样的AF0到AF15可复用配置。

F1是配置引脚为复用后,只要使能了这个引脚对应的外设功能,就可以使用,没有F4那种的复用配置选项。
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
 楼主| 发表于 2018-8-8 08:29:57 | 显示全部楼层
eric2013 发表于 2018-8-8 02:26
我印象中是不行的,因为F1没有F4那样的AF0到AF15可复用配置。

F1是配置引脚为复用后,只要使能了这个 ...

什么意思?只需要使能一下复用功能就行?
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
 楼主| 发表于 2018-8-8 08:32:17 | 显示全部楼层
eric2013 发表于 2018-8-7 17:51
这个函数GPIO_AFIODeInit可以,不过引脚都被复位了。

我只需要复位其中某一个例如PA.1,不能把PA全部复位啊。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-8-8 10:13:54 | 显示全部楼层
diiiiiii 发表于 2018-8-8 08:29
什么意思?只需要使能一下复用功能就行?

可以这样试试,关闭这个引脚对应的外设功能,然后重新配置IO为普通推挽,测试是否有问题,没问题的话,这么用就可以了。
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
 楼主| 发表于 2018-8-8 11:07:09 | 显示全部楼层
本帖最后由 diiiiiii 于 2018-8-8 11:08 编辑
eric2013 发表于 2018-8-8 10:13
可以这样试试,关闭这个引脚对应的外设功能,然后重新配置IO为普通推挽,测试是否有问题,没问题的话,这 ...

不用考虑其他的,重新配置就可以。我受到其他类型单片机影响太深了,昨天没做测试,今天测试一下,直接初始化就OK.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-8-8 11:23:45 | 显示全部楼层
diiiiiii 发表于 2018-8-8 11:07
不用考虑其他的,重新配置就可以。我受到其他类型单片机影响太深了,昨天没做测试,今天测试一下,直接初 ...

果然如此简单。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 01:20 , Processed in 0.197802 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表