一个很奇怪的实验,首先有一个STM32,一个5V的51单片机.5V的51单片机时钟需要从STM32的MCO获取.究竟能不能,这就得验证了.为了验证这个问题.首先配置一个输出HSE时钟的,这个通常比较低,只有8MHz,STC的51使用无源晶振下也能做12MHz,所以这个肯定不应该有问题.我用的MCU是IAP15F2K61S2的早期版本,只能支持到25MHz.
void IO_Init() { GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOs clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); /* GPIOB configuration */ GPIO_PinAFConfig(GPIOA, GPIO_PinSource8 , GPIO_AFλ_MCO); RCC_MCO1Config(RCC_MCO1Source_HSE,RCC_MCO1Div_1); }
然后接到STC的XTAL1,然后记得共地,然后上电检测.记得切换到外部晶体振荡器.然而,我万用表看是5V,他却..
如果要得出25MHz怎么办.变通的方法是输出PLLI2SCLK,那就可以得到各种频率了.