GD32F130f8 OSC_IN和OSC_OUT复用为普通IO口(PF0和PF1)

目录

 一、GD32F130Fx官方手册

 二、问题所在    

 三、分析原因

 四、解决办法


一、GD32F130Fx官方手册

        GD32F130Fx只有20个引脚可以拿出来用,如果你的PA0-PA7已经当做ADC采集的八个通道,PB1作为开关的控制器,PA9PA10作为串口的收发,如果还想有其他的剩余IO口当做普通的输入IO的话,只能从PF0和PF1下手

   二、问题所在    

 在GD32F130的数据手册中,OSC_IN和OSC_OUT在默认的状态下就是PF0和PF1,所以第一次在程序中仅仅初始化了PF0和PF1这两个GPIO,没有做任何的复用,如下图代码:(有两个版本的库,一个是GD32官方的库,一个是类似于STM32的库)

(GD32官方库:)

(类STM32库:)

        但是通过试验得知,只初始化PF0和PF1的两个端口远远不够;

        给GD32F130芯片通上电之后,F0和F1引脚始终输出1.5V左右的电压(可能是外部电路的电路分压)

三、分析原因

         在单片机使用的过程中,如果使用的是内振的话,PF0和PF1默认是IO口的;如果使用外振的话,那就是这个晶振脚OSC_IN和OSC_OUT。

 四、解决办法

        如果你使用的是类STM32的库,则直接在主函数或者时钟初始化函数里面加一句                          

RCC->GCCR &= ~((uint32_t)RCC_GCCR_HSEEN);即可;

        即可完成对PF0和PF1的普通IO口的复用。

        若你使用的是GD32官方的库,我搜了一下,没有此寄存器的重定义,但是自己可以耍个小聪明,在类STM32找到对应的寄存器的地址,对其进行重定义(或者直接使用官方重定义的名称;PS:使用官方重定义的名称我没认真的试)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值