打印

GD32F103 BOOT1/PB2引脚的使用

[复制链接]
7283|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qixw|  楼主 | 2018-6-25 13:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在由ST32改用GD32,在GD103C8T6封装上,BOOT1/PB2管脚复用,使用ST32时,PB2用作普通IO脚,输出高/低电平正常,现在换了GD32,发现PB2输出高电平没有反应,请问这个管脚的初始化有特殊要求吗?以下是我的代码:

void LED_init()
{
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
                                                                                                  
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 + GPIO_Pin_2;       

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

        GPIO_Init(GPIOB, &GPIO_InitStructure);       
       
        GPIO_WriteBit(GPIOB, GPIO_Pin_2, Bit_SET);      //这一句GD32输出没反应,在ST32上正常
}
沙发
lvben5d| | 2018-6-25 16:53 | 只看该作者
你这库函数 不对吧?  GD32F10X的V2.0版本的库 不是这样的。

使用特权

评论回复
板凳
qixw|  楼主 | 2018-6-25 18:19 | 只看该作者
百度文档找到了这句话:“PB1设置成IPU, IPD, AF_PP, AF_OD四种模式的时候,PB2不受控。为了正常使用PB2,PB1必须配置成OUT_PP, AIN,FLOATING;” 我们原设计PB1配置为AF_PP,因此PB2的IO功能无法使用,这是GD32的Bug,还是设计就这样?这种功能缺陷让我们没法用啊,还得回到STM32。

使用特权

评论回复
地板
qixw|  楼主 | 2018-6-25 18:22 | 只看该作者
尝试着修改PB1为OUT_PP, PB2输出正常了

使用特权

评论回复
5
shenmu2012| | 2018-6-27 22:51 | 只看该作者
这个主要还是先查看GPIO的设置的

使用特权

评论回复
6
yingdian6| | 2021-6-28 11:35 | 只看该作者
PB1 PWM输出 PB2用不了 楼主你的解决了吗

使用特权

评论回复
7
lesheng002| | 2022-4-30 09:13 | 只看该作者
PB1模拟信号输入, PB2做普通IO用,与楼主一样的没法输出高电平,楼主解决了吗?

使用特权

评论回复
8
lesheng002| | 2022-4-30 10:04 | 只看该作者
lesheng002 发表于 2022-4-30 09:13
PB1模拟信号输入, PB2做普通IO用,与楼主一样的没法输出高电平,楼主解决了吗? ...

之前没有留意,在初始化IO口的时候要使能时钟,rcu_periph_clock_enable(RCU_GPIOB);,这样就能正常的输出高低电平了

使用特权

评论回复
9
linzhoulsq| | 2023-10-9 16:25 | 只看该作者
我的不行了,pb1是模拟输入,程序一直重启

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝