为啥使用外部中断要打开syscfg时钟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥使用外部中断要打开syscfg时钟相关的知识,希望对你有一定的参考价值。

MCS-51系列单片机各中断源的入口地址由硬件事先设定,分配如下:  中断源入口地址  外部中断0----0003H  定时器T0中断----000BH  外部中断1----0013H  定时器T1中断----001BH  串行口中断----0023H使用时,通常在这些中断入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断服务程序的起始地址上去。 参考技术A 最近遇到了这个疑惑,32F4单片机使用GPIO外部中断需要打开syscfg时钟,疑惑部分主要在这个时钟控制位在APB2这个总线时钟控制寄存器上。下面是查到的信息:
----------------------------------------------------------------------------------------
前面1.4提到了AFIO时钟问题。AFIO时钟只是在STM32F1系列里被提及。对于32F1系列,涉及到管脚的EXTI、 REMAP、事件输出时就需要开启AFIO时钟。比方上面提到的管脚REMAP,必须先开AFIO时钟。配置EXTI中断也是一样,否则不生效。
对于STM32F1以外的其它STM32系列,不再提AFIO,多了个SYSCFG【系统控制器】外设,其功能跟F1的AFIO 有些类似但有差异,主要管理内存空间的映射、与EXTI中断源有关的IO配置以及其它配置等事务,不同32系列间还各有细小差异。
如果不打开SYSCFG时钟,有关内存空间重映射、与EXTI配置的操作就会无效。
---------------------------------------------------------------------------------------
不知道ST公司为什么这样设置,费解。
参考技术B

在HAL库中的微妙级别的延迟怎么弄

参考技术A 你要知道为什么需要时钟。单片机必须要有时钟才能正常运行,STM32有外部时钟和内部时钟的区别。但无论是外部还是内部时钟,都会经过分频或倍频最后得到外设的时钟,这样外设才能正常运行。而打开时钟就是允许接收分频后的频率。比如外部时钟晶振你是8M,经过倍频后得到72M,然后可分频2、4、6、8……给ADC是使用,但是ADC最大运行频率为14M,所以分频数至少得设为6。这时你也要像你问的那样,打开ADC的时钟。

以上是关于为啥使用外部中断要打开syscfg时钟的主要内容,如果未能解决你的问题,请参考以下文章

STM32Cubemx——外部中断

OS实验2-1 课堂练习2.1 外部中断

内部中断,外部中断,网口中断优先级 如何配置

用STM32F107单片机的外部中断对脉冲信号计数,脉冲信号频率略高,计数就变少,为啥?

嵌入式--中断系统学习(中断系统+NVIC+SYSCFG+优先级配置+中断嵌套+中断架构)

外部中断