打印

gd32f130的PF0,PF1怎么设为普通io使用

[复制链接]
2034|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linguanghua|  楼主 | 2017-10-18 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问有人知道gd32f130的PF0,PF1怎么设为普通io使用吗?
我看手册PF0,PF1默认是作为GPIO口使用,但是实际使用无法控制IO口电平。
void pwr_ctr_init(void)
{
    GPIO_InitPara  GPIO_InitStructure;
    RCC_AHBPeriphClock_Enable(RCC_AHBPERIPH_GPIOF, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_PIN_1;
    GPIO_InitStructure.GPIO_Mode = GPIO_MODE_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PUPD_PULLUP;//GPIO_PUPD_NOPULL;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_2MHZ;
    GPIO_Init(GPIOF, &GPIO_InitStructure);
    GPIOF ->BOR = GPIO_PIN_1 ;//置H
}
这份代码不起作用,IO口有2.9V的电压(也可能是外部电路的电路分压)。
沙发
linguanghua|  楼主 | 2017-10-19 11:02 | 只看该作者
加上一句,终于可以了。
RCC->GCCR &= ~((uint32_t)RCC_GCCR_HSEEN);

使用特权

评论回复
板凳
Houtz| | 2017-10-19 11:04 | 只看该作者
使用内振的话,PF0,PF1默认是IO的。如果使用外振,那就这个就是晶振脚OSC_IN,OSC_OUT。

使用特权

评论回复
地板
linguanghua|  楼主 | 2017-10-19 11:28 | 只看该作者
我发现固件2.0没这个问题。
system_gd32f1x0.c
在上面文件中,
定义
#define SYSCLK_FREQ_xxMHz_HSI
而固件1.0没有HSI的频率定义。
所以要手动禁止HSE.
建议大家固件一定要用新的。

使用特权

评论回复
5
Houtz| | 2017-10-19 11:34 | 只看该作者
嗯,你使用8M内振的话,RCC_GCCR_HSEEN应该是关闭的,可能是你选了外部晶振的初始化,导致这个是打开的,而实际上没有挂晶振,程序等待超时切换到了内振。而RCC_GCCR_HSEEN就是打开了。注意你的时钟初始化程序。后续有问题可以找我375880228@qq.com

使用特权

评论回复
6
tongbu2015| | 2017-10-23 21:47 | 只看该作者
Houtz 发表于 2017-10-19 11:34
嗯,你使用8M内振的话,RCC_GCCR_HSEEN应该是关闭的,可能是你选了外部晶振的初始化,导致这个是打开的,而 ...

这个分析还是蛮不错的,我也参考下

使用特权

评论回复
7
shenmu2012| | 2017-10-23 22:38 | 只看该作者
这个是怎么控制的?

使用特权

评论回复
8
zhangbo1985| | 2017-10-24 18:58 | 只看该作者
这个重点的看下IO口的电平设计的

使用特权

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

本版积分规则

25

主题

214

帖子

4

粉丝