GD32复用功能时钟rcu_periph_clock_enable(RCU_AF)什么时候需要开启?

[复制链接]
 楼主| 电源民工 发表于 2020-5-4 21:23 | 显示全部楼层 |阅读模式
GD32E103C8T6做一个外部触发的实验,EXTI9(PB9)用作触发源,中断优先级和开中断都配置好了,如果不加rcu_periph_clock_enable(RCU_AF)这句话,就进不了中断函数EXTI5_9_IRQHandler();加上rcu_periph_clock_enable(RCU_AF)就能进中断。
PB9的初始化是这样的gpio_init(GPIOB, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ,GPIO_PIN_9);我认为这没有用到复用功能啊,为啥需要开AF时钟??我哪里理解多了?难道浮空输入(GPIO_MODE_IN_FLOATING)属于复功能么?看手册也觉得不是复用功能啊。
我哪里理解错了,请指点!!谢谢!
下面是手册的定义
PB9
Default: PB9
Alternate: TIMER3_CH3, TIMER10_CH0
Remap: I2C0_SDA, CAN0_TX

评论

[url=home.php?mod=space&uid=3038938]@JinGuangwei[/url] :嗯嗯,谢谢,看了,的确是这里的问题  发表于 2020-5-11 11:44
[url=home.php?mod=space&uid=3038938]@JinGuangwei[/url] :嗯嗯,谢谢,看了,的确是这里的问题  发表于 2020-5-11 11:43
7.5. 外部中断及事件功能概述 EXTI触发源包括来自I/O管脚的16根线以及来自内部模块的3根线。 (包括LVD、 RTC闹钟、USBFS唤醒)。通过配置GPIO模块的AFIO_EXTISSx寄存器,所有的GPIO管脚都可以被选作EXTI的触发源, 具体细节请参考GPIO章节AFIO部分。 看一下8.5的AFIO寄存器,都是AF的寄存器,看看EXTI在里面不  发表于 2020-5-11 09:25
yqdeso 发表于 2020-5-11 10:35 | 显示全部楼层
EXTI 源是需要通过AFIO_EXITSSx寄存器来选择的。

详请去看32E103用户手册的8.5.11~8.5.14
 楼主| 电源民工 发表于 2020-5-11 11:42 | 显示全部楼层
yqdeso 发表于 2020-5-11 10:35
EXTI 源是需要通过AFIO_EXITSSx寄存器来选择的。

详请去看32E103用户手册的8.5.11~8.5.14 ...

一语中的啊,谢谢。意思是这个寄存器正常工作是需要配置AF时钟么?
sonicll 发表于 2020-5-11 14:02 | 显示全部楼层
本帖最后由 sonicll 于 2020-5-11 14:03 编辑

当你需要操作AFIO的任何一个寄存器时,就要开AF时钟,跟操作其他外设的道理是一样的
Y0825 发表于 2022-11-8 16:39 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

0

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

4

主题

15

帖子

0

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