클럭은 크게보면 2가지로 나뉜다
내부 8MHz 오실레이터와 외부에서 공급되는 클럭(OSC-IN)으로 구번, 아래 그림에서 붉은 색으로 표시된 부분이 외부 클럭을 공급할 때의 계통도
OSC-IN으로 공급된 클럭이 8MHz일 때 Clock configuration register(RCC_CFGR)의 설정에 따라 PLL회로를 거쳐 최대 72MHz로 증가
아래 그림의 내부클럭 경우 PLL을 거치러면 1/2로 클럭을 줄이고 최대 16배수까지 클럭을 나누면 최대 64MHz까지 설정 가능

STM32F103RB에서 시스템 클럭을 제어하는 레지스터는 RCC(Reset and Clock Control)레지스터(0x40021000), 모두 10개의 레지스터 구성
RCC_CR은 내외부 클럭, RCC_CFGR은 PLL의 배수를 결정, RCC_APB2RSTR, RCC_APB1RSTR 등은 주변장치에 공급되는 클럭을 세팅
시스템 클럭과 관련된 부분은 보드를 수령하고 직접 코드를 만들면서 테스트를 해봐야 제대로 검증 가능
워치독, RTC 클럭도 지원

시스템 클럭과 관련된 시스템 클럭 초기화 함수인 DeInit()의 내용을 보면 아래와 같음
해당 함수는 system_stm32f10x.c에 있는 SystemInit()과 거의 비슷
SystemInit()에는 SetSysClock() 함수 추가 되어 있다