EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM32为什么必须先配置时钟再配置GPIO?答案在这里! K3 o# M0 E, ~" Q5 Q" Z: _
; ]. d, R! V( M
所有寄存器都需要时钟才能配置吧,寄存器是由D触发器组成的,只有送来了时钟,触发器才能被改写值。 任何mcu的任何外设都需要有时钟,8051也是如此;STM32为了让用户更好地掌握功耗,对每个外设的时钟都设置了开关,让用户可以精确地控制,关闭不需要的设备,达到节省供电的目的。 51单片机不用配置IO时钟,只是因为默认使用同一个时钟,这样是方便,但是这样的话功耗就降低不了。 例如,某个功能不需要,但是它还是一直运行。 STM32需要配置时钟,就可以把不需要那些功能的功耗去掉。 当你想关闭某个IO的时候,关闭它想对应的时钟使能就是了,不过在51里面,在使用IO的时候是没有设置IO的时钟的,还有在STM32中,有外部和内部时钟之分,关于时钟等好好研究 ARM的芯片都是这样,外设通常都是给了时钟后,才能设置它的寄存器(即才能使用这个外设)。STM32、LPC1XXX等等都是这样。 这么做的目的是为了省电,使用了所谓时钟门控的技术。 这也属于电路里同步电路的范畴:同步电路总是需要1个时钟 $ G0 ?% F: E& d( m
|