Timer là bộ định thời, cứ sau một khoảng thời gian định trước thì bộ định thời sẽ phát ra một sự kiện để bạn có thể thực hiện các tính toán định kỳ theo ý muốn. Cách sử dụng timer trong STM32F103C8T6 1. Chọn TIM1, SYS/Debug là Serial Wire, bật USART như hình dưới 2. Bên tab configuration chọn TIM1 và thiết lập Prescale là (4000-1) tức là 3999, viết 4000-1 thì dễ hiểu hơn (xem phần công thức tính phía dưới để biết tại sao). Thiết lập Counter Period là 2000-1. 3. Bật trigger cho UART và Timer 4. Công thức tính khoảng thời gian mà timer lặp lại như sau: Update_event = TIM_CLK / ((PSC+1)*(ARR+1)*(RCR+1)) Trong đó TIM_CLK là tần số xung của timer, trong ví dụ ở hình dưới thì clock này là 8MHz. PSC là Prescale ở bước trên 4000-1 ARR là autoreload register, là Counter Period ở hình trên, giá trị là 2000-1 RCR là repetition counter, như hình trên thì giá trị là 0 Như vậy với thiết lập chúng ta đang có thì 8000000/(4000*2000*1) = 1s. Nghĩa là cứ 1s thì timer sẽ trigge...