对于 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
}