GD32的GPIO初始化问题,希望大神帮忙看一下,非常感谢!

[复制链接]
1466|3
手机看帖
扫描二维码
随时随地手机跟帖
zhg1023058880|  楼主 | 2020-4-7 15:26 | 显示全部楼层 |阅读模式
最近在学习GD32,用的是gd32f407,在学习led实验的时候,led是低电平亮,在初始化配置中,我配置为该引脚上拉,但是发现led会突然闪亮一下后熄灭,后来使用在线仿真的时候发现是在gpio_mode_set函数执行后,led就亮了,但我明明在这个函数中设置的是上拉,按道理来说该引脚不该是高电平吗?是不该亮的啊,我发现stm32就没这个问题,困惑了很久,希望大家帮忙看一下,这个该怎么规避

使用特权

评论回复
明明很讨厌| | 2020-4-9 09:24 | 显示全部楼层
单步调试,进入gpio_mode_set,对照寄存器看看是执行到哪条代码时点亮LED。先要定位问题出在哪里才能解决问题

使用特权

评论回复
zhg1023058880|  楼主 | 2020-4-14 09:58 | 显示全部楼层
还是我自己来回复一下吧,之前我是进行过单步调试的,在进行到gpio控制寄存器配置的时候,我发现led亮了,其实到这里原因还是不明确,我的led是低电平亮,所以我就猜测会不会是默认直接输出低电平了,然后我去查看了gpio的输出数据寄存器,发现它默认都是0,也就是所谓的低电平,然后我做了个验证,在配置控制寄存器之前,将对应的led引脚配置为1(高电平),进行单步调试,发现led不会出现亮一下的现象了,所以我猜这会不会是gd32的一个bug,尽管上拉了,可还是会默认按照gpio输出数据寄存器的数据进行输出,所以会出现闪亮一下那个现象,提醒下大家,做好措施

使用特权

评论回复
Sunriver_Yao| | 2020-4-23 10:57 | 显示全部楼层
上拉,并不是强拉。若PortODR=0,输出还是0的。ModeSet之前,请先设PortODR=1,再SetMode,就可以了!

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝