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
|
@JinGuangwei :嗯嗯,谢谢,看了,的确是这里的问题
@JinGuangwei :嗯嗯,谢谢,看了,的确是这里的问题
7.5. 外部中断及事件功能概述 EXTI触发源包括来自I/O管脚的16根线以及来自内部模块的3根线。 (包括LVD、 RTC闹钟、USBFS唤醒)。通过配置GPIO模块的AFIO_EXTISSx寄存器,所有的GPIO管脚都可以被选作EXTI的触发源, 具体细节请参考GPIO章节AFIO部分。 看一下8.5的AFIO寄存器,都是AF的寄存器,看看EXTI在里面不