【解決方案】
// ★sys_check_timeouts函數千萬不能調用的太頻繁, 否則會出錯!(後果就是開機後要等1~2分鐘DHCP才能分配到IP位址)
if ((uint16_t)(TIM1->CNT - last_check) >= 200) // 如果距離上次檢測超過200*0.5ms=100ms
{
last_check = TIM1->CNT;
sys_check_timeouts(); // 則再檢測一次
// 當TIM1->CNT < last_check時也能正常判斷, 因為兩者都是無符號數
// 比如12-9985的結果是55563, 這相當於計算65536+(12-9985)
}