为啥使用外部中断要打开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时钟的主要内容,如果未能解决你的问题,请参考以下文章
用STM32F107单片机的外部中断对脉冲信号计数,脉冲信号频率略高,计数就变少,为啥?