STM32 时钟输出

对于 STM32F1 只能使用PA8 口,配置外设MCO,将指定时钟从A8口输出

示例代码:

void freq_init_spl(void)
{
 
	GPIO_InitTypeDef  GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);	 //使能PA时钟


	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_Init(GPIOA, &GPIO_InitStructure);	
	GPIO_SetBits(GPIOA,GPIO_Pin_8);
	
	RCC_MCOConfig(RCC_MCO_PLLCLK_Div2); //RCC_MCO_NoClock --- 无时钟输出 
								//RCC_MCO_SYSCLK --- 输出系统时钟(SysCLK) 
								//RCC_MCO_HSI --- 输出内部高速8MHz的RC振荡器的时钟(HSI) 
								//RCC_MCO_HSE --- 输出高速外部时钟信号(HSE) 
								//RCC_MCO_PLLCLK_Div2 --- 输出PLL倍频后的二分频时钟(PLLCLK/2)		
}
void frep_init_reg(void){
	RCC->APB2ENR|=1<<0;//使能AFIO时钟    
     RCC->APB2ENR|=1<<2;//先使能外设PORTA时钟
    GPIOA->CRH&=0XFFFFFFF0;     
    GPIOA->CRH|=0X0000000B;//PA8复用输出           
    RCC->CFGR&=~(7<<24);
    RCC->CFGR|=6<<24;   //HSI OUT 8Mhz
}

你可能感兴趣的:(单片机,stm32,嵌入式硬件)