mini stm32开发板入门教程(17)
发布时间:2021-06-06
发布时间:2021-06-06
mini stm32开发板入门教程
}
(2)打开GPIOA的时钟,因为STM32是一个低功耗的MCU,每一个你使用的外围设备都需要单独开启时钟,如果不开启将不能使用,这个也是对于STM32初学者容易疏忽的地方/*EnableGPIOAandAFIOclocks*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|
RCC_APB2Periph_AFIO,ENABLE);
STM32共有5种时钟源,其中三种不同的时钟源可用作为驱动系统时钟(SYSCLK);
1、HSI由内部8MHzRC振荡器产生,它是可以直接用来作为系统时钟或经2分频后作为PLLSRC输入。HIS时钟频率在出厂时被校准在1%(25°C),在系统复位时,工厂校准值会被装载到时钟控制寄存器的HISCAL[7..0]位。用户可以通过更改HISCAL[4..0]来调整HSI频率。
另外时钟寄存器中有一个HSIRDY位用来指示HSIRC是不稳定工作,在时钟启过后,直到这个标志位置被硬件置1后,HSIRC时钟才被输出。
HSIRC时钟还可以用时钟寄存器中的HSION位来启动和关闭。HSI时钟同时也是HSE晶体荡振器的备用时钟源。
使用HSE时钟,程序设置时钟参数流程:
1、将RCC寄存器重新设置为默认值RCC_DeInit;
2、打开外部高速时钟晶振HSERCC_HSEConfig(RCC_HSE_ON);
3、等待外部高速时钟晶振工作HSEStartUpStatus=RCC_WaitForHSEStartUp();4、设置AHB时钟RCC_HCLKConfig;5、设置高速AHB时钟RCC_PCLK2Config;6、设置低速速AHB时钟RCC_PCLK1Config;7、设置PLLRCC_PLLConfig;8、打开PLLRCC_PLLCmd(ENABLE);
9、等待PLL工作while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)10、设置系统时钟RCC_SYSCLKConfig;11、判断是否PLL是系统时钟while(RCC_GetSYSCLKSource()!=0x08)
12、打开要使用的外设时钟RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd()
具体设置请参考下面的文章(3)设置外部中断,所有的GPIO口都可以作为外部中断源.具体可以参考下面这篇文章./*ConnectEXTILine3toPA.3*/
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource3);/*ConfigureEXTILine3togenerateaninterruptonfallingedge*/EXTI_InitStructure.EXTI_Line=EXTI_Line3;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
上一篇:品质成本管理
下一篇:信息化教学设计(模板1)