STM32 comprehensive experiment on GPIO, interrupt, SysTick and serial communication