標籤: 嵌入式
-
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: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 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:Timer 計時器
前言Timer 計時器是各個 MCU 中都會有的基本功能。正如其名,當需要精確定時以進行控制時,Timer 就會派上用場,Timer 還可以用來產生 PWM 訊號,是很常用的功能。上一篇已經簡單介紹要如何計算 Timer 的 PSC 與 ARR 來得到想要的頻率了,這一篇就要來看看實際的程式。這篇的目標是使用 Timer 來讓 LED 的閃爍頻率更精確且方便修改。
簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式