#include #include "stm32c011xx.h" void sysclk_init(void); void blinky_init(void); void timer_init(void); void mco_init(void); void pin8_PC15(void); void pin1_PC14(void); void pin4_PF2(void); int main(void) { sysclk_init(); mco_init(); } void sysclk_init(void){ RCC->APBENR2 |= (1U<<0);//SYSCFG CLOCK pin8_PC15(); pin1_PC14(); RCC->IOPENR |= (1U<<2); //GPIOC->MODER |= (1U<<31); //GPIOC->MODER &=~(1U<<30); //GPIOC->AFR[1] &=~(1U<<31); //GPIOC->AFR[1] &=~(1U<<30); //GPIOC->AFR[1] &=~(1U<<29); //GPIOC->AFR[1] |= (1U<<28); RCC->CR &= ~(1U<<8); RCC->CR |= (1U<<16); RCC->CR |= (1U<<18); while(!(RCC->CR & (1U<<17))){} RCC->CFGR &= ~(1U<<2); RCC->CFGR &= ~(1U<<1); RCC->CFGR |= (1U<<0); while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSE){} } void blinky_init(void){ RCC->IOPENR |= (1U<<0);//LED GPIOA->MODER &= ~(1U<<25); GPIOA->MODER |= (1U<<24);//LED while(1){ GPIOA->ODR ^= (1U<<12); for(uint32_t i = 0; i < 300000; i++){} } } void timer_init(void){ RCC->APBENR2 |= (1U<<11);//TIM1 GPIOA->MODER |= (1U<<1); GPIOA->MODER &= ~(1U<<0);//TIM1 GPIOA->AFR[0] &=~(1U<<3);//TIM GPIOA->AFR[0] |= (1U<<2); GPIOA->AFR[0] &=~(1U<<1); GPIOA->AFR[0] |= (1U<<0); } void mco_init(void){ RCC->IOPENR |= (1U<<5);//MCO pin4_PF2(); GPIOF->MODER |= (1U<<5); GPIOF->MODER &= ~(1U<<4);//MCO GPIOF->AFR[0] &=~(1U<<11);//MCO GPIOF->AFR[0] &=~(1U<<10); GPIOF->AFR[0] &=~(1U<<9); GPIOF->AFR[0] &=~(1U<<8); RCC->CFGR |= (1U<<26);//MCO RCC->CFGR &=~(1U<<25); RCC->CFGR &=~(1U<<24); } void pin8_PC15(void){ SYSCFG->CFGR3 |= (1U<<7); SYSCFG->CFGR3 &=~(1U<<6); } void pin1_PC14(void){ SYSCFG->CFGR3 &=~(1U<<1); SYSCFG->CFGR3 |= (1U<<0); } void pin4_PF2(void){ SYSCFG->CFGR3 &=~(1U<<3); SYSCFG->CFGR3 &=~(1U<<2); }