STM32 LibOpenCM3:IWDG 獨立看門狗計時器 前言看門狗計時器(Watchdog timer,WDG)是眾多 MCU 都有的功能,它是一種特殊功能的計時器,其功能為不斷下數,如果下數到一個值之前都沒有做刷新(Refresh)的話就認定目前系統出問題了(例如進入死迴圈跳不出來),並自動觸發系統重置(System reset)。如果要系統正常運作不 Reset 的話,必須要在 WDG Timeout 前進行 Refresh,以告訴 WDG:「我還 2022-09-29 簡單入門 LibOpenCM3 STM32 嵌入式系統開發 #教學 #程式 #嵌入式 #C/C++ #STM32 #LibOpenCM3
STM32 LibOpenCM3:SysTick delay 前言在前面的篇章中,我們已經學會使用 Timer 來精確定時了,而在使用 MCU 的過程中最常會需要精確定時的莫過於 delay() 函式,在此之前我都是單純的讓 MCU 空跑一定的次數,但這樣很難知道它實際上到底 delay 了多久的時間,而已同樣的數值在不同的 Clock Tree 設定下 delay 的長度也不同,因此我們可以使用 Timer 來做出一個更好的 delay()。 但是如果只是 2022-09-28 簡單入門 LibOpenCM3 STM32 嵌入式系統開發 #教學 #程式 #嵌入式 #C/C++ #STM32 #LibOpenCM3
STM32 LibOpenCM3:PWM 脈波寬度調變 前言在之前的內容中已經介紹過基本的 Timer 用法,及 PWM 的計算。 在使用 PWM 時我們會需要控制兩種參數:頻率與 Duty Cycle(佔空比)。頻率的部分和 Timer 一樣,由 TIMx_PSC 與 TIMx_ARR 暫存器的值來設定,而 Duty Cycle 則由 TIMx_CCRx 暫存器來指定。 這篇的目標是寫出一個可以設定 PWM 頻率與 Duty Cycle 的程式,並讓 2022-09-27 簡單入門 LibOpenCM3 STM32 嵌入式系統開發 #教學 #程式 #嵌入式 #C/C++ #STM32 #LibOpenCM3
STM32 PWM 脈波寬度調變 前言在上一篇中已經介紹過基本的 Timer 用法,而 Timer 除了單純的定時外,最常見的應用就是產生 PWM(Pulse width modulation)訊號。 在使用 PWM 時我們會需要控制兩種參數:頻率與 Duty Cycle(佔空比)。頻率的部分和 Timer 一樣,由 TIMx_PSC 與 TIMx_ARR 暫存器的值來設定,而 Duty Cycle 則由 TIMx_CCRx 暫存 2022-09-26 簡單入門 LibOpenCM3 STM32 嵌入式系統開發 #教學 #嵌入式 #STM32 #LibOpenCM3
STM32 LibOpenCM3:Timer 計時器 前言Timer 計時器是各個 MCU 中都會有的基本功能。正如其名,當需要精確定時以進行控制時,Timer 就會派上用場,Timer 還可以用來產生 PWM 訊號,是很常用的功能。 上一篇已經簡單介紹要如何計算 Timer 的 PSC 與 ARR 來得到想要的頻率了,這一篇就要來看看實際的程式。 這篇的目標是使用 Timer 來讓 LED 的閃爍頻率更精確且方便修改。 2022-09-25 簡單入門 LibOpenCM3 STM32 嵌入式系統開發 #教學 #程式 #嵌入式 #C/C++ #STM32 #LibOpenCM3