O_PortSourceGPIODGPIO_Pi
Source4配置EXTI线0上出现下降沿,则产生中断EXTI_I
itStructureEXTI_Li
eEXTI_Li
e4EXTI_I
itStructureEXTI_ModeEXTI_Mode_I
terruptEXTI_I
itStructureEXTI_TriggerEXTI_Trigger_Falli
gEXTI_I
itStructureEXTI_Li
eCmdENABLEEXTI_I
itEXTI_I
itStructureEXTI_Ge
erateSWI
terruptEXTI_Li
e4
f将EXTI线9连接到PB9上GPIO_EXTILi
eCo
figGPIO_PortSourceGPIOBGPIO_Pi
Source9将EXTI线9上出现下降沿产生中断EXTI_I
itStructureEXTI_Li
eEXTI_Li
e9EXTI_I
itStructureEXTI_ModeEXTI_Mode_I
terruptEXTI_I
itStructureEXTI_TriggerEXTI_Trigger_Falli
gEXTI_I
itStructureEXTI_Li
eCmdENABLEEXTI_I
itEXTI_I
itStructureEXTI_Ge
erateSWI
terruptEXTI_Li
e9中断函数:voidEXTI4_IRQHa
dlervoidifEXTI_GetITStatusEXTI_Li
e4RESETEXTI_ClearITPe
di
gBitEXTI_Li
e4ifLedflag0Ledflag1GPIOCODR0X00000080elseLedflag0GPIOCODR0XFFFFFF7F
f注时钟设置的时候最好加上这句:RCCRCC_APB2PeriphClockCmdRCC_APB2Periph_AFIOENABLE使能AFIO时钟
STM32中定时器的时钟源STM32资料200907242134字号:大大中中小小阅读277评论0
STM32中有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图:
从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分。下面以定时器27的时钟说明这个倍频器的作用:APB1的预分频系数为1时,当这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其它数值即预分频系数为2、4、8或16时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍。假定AHB36MHz,因为APB1允许的最大频率为36MHz,所以APB1的预分频系数可以取任意数值;当预分频系数1时,APB136MHz,TIM27的时钟频率36MHz倍频器不起作用;当预分频系数2时,APB118MHz,在倍频器的作用下,TIM27的时钟频率36MHz。有人会问,既然需要TIM27的时钟频率36MHz,为什么不直接取APB1的预分频系数1?答案是:APB1不但要为TIM27提供时钟,而且还要为其它外设提供时钟;设置这个倍频器可以在保证其它外设使用较低时钟频率时,TIM27仍能得到较高的时钟频率。
f再举个例子:当AHB72MHz时,APB1的预分频系数必须大于2,因为APB1的最大频率只能为36MHz。如果APB1的预分频系数2,则因为这个倍频器,TIM27仍然能够得到72MHz的时钟频率r