GD32F303与GD32F450的关于复用时钟使能的差异

[复制链接]
277|2
 楼主 | 2019-12-28 11:21 | 显示全部楼层 |阅读模式
GD32F303 里面要复用功能IO,通常需要把RCU_APB2EN里面的AFEN打开 对应的代码是rcu_periph_clock_enable(RCU_AF);然后在引脚初始化函数gpio_init()里使用GPIO_MODE_AF_xx


但GD32F450没有这个功能了,寄存器里也没有找到相应的位。是否不需要再关注复用时钟,直接使用复用连接就行了。
库里面利用连接的函数是:void gpio_af_set(uint32_t gpio_periph,uint32_t alt_func_num,uint32_t pin)。
如果有重映射引脚也不需要复用时钟吗?比如有定时器重新映射。

STM32也有类似的复用功能,如下所示:
使能AFIO功能的时钟         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
然后在引脚设置                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_xx;
特别是使用了AFIO的事件控制寄存器、AFIO的重映射功能以及外部中断(EXTI)控制寄存器是一定要开启AFIO的时钟的



使用特权

评论回复
| 2019-12-29 17:20 | 显示全部楼层
之前用GD32F450的时候根本就没有考虑AF的时钟问题,一样用,后来玩GD32VF103的时候,需要配置Af时钟,当时感觉很奇怪,原来303也需要配置啊。

使用特权

评论回复
 楼主 | 2019-12-30 09:44 | 显示全部楼层
xdqfc 发表于 2019-12-29 17:20
之前用GD32F450的时候根本就没有考虑AF的时钟问题,一样用,后来玩GD32VF103的时候,需要配置Af时钟,当时 ...

好像103,303都需要。关于复用这个我目前一知半解,因为我用的库开发。是否全寄存器开发的,会了解深入一些?

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表