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