標籤: 程式
所有帶有標籤「程式」的文章。
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 LibOpenCM3:Timer 計時器
前言:Timer 計時器是各個 MCU 中都會有的基本功能。正如其名,當需要精確定時以進行控制時,Timer 就會派上用場,Timer 還可以用來產生 PWM 訊號,是很常用的功能。上一篇已經簡單介紹要如何計算 Timer 的 PSC 與 ARR 來得到想要的頻率了,這一篇就要來看看實際的程式。這篇的目標是使用 Timer 來讓 LED 的閃爍頻率更精確且方便修改。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:USART 接收
前言:上一篇中我介紹了 USART 的發送,這次要來寫 USART 的接收了。由於透過輪詢的方式實現 USART 的接收實在是不是一個好的寫法,因此我們會直接使用中斷(Interrupt)的方式來達成。這次的功能為讓 STM32 將 USART 接收到的資料原封不動丟回去,且收到資料時 LED 會閃一下。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:USART 發送
前言:USART 是最常用且基本的通訊方式之一,我通常會用 USART 來讓 MCU 與電腦進行溝通,在進行設定或開發除錯時很好用。不過實際上這篇要介紹的只是 UART 而非 USART,不過我還是統一用 USART。這一篇的目標是讓 STM32 持續透過 USART 來發送資料到電腦,並且可以使用 printf() 函式。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:EXTI 外部中斷
前言:在之前的文章中我們使用輪詢的方式來讀取目前的按鈕狀態,但這種方式的效率不是很好,在需要讀取按鈕狀態等情況下,我們可以使用外部中斷(External Interrupt,EXTI),讓 CPU 可以去忙其它事情,等到按鈕被按下時會產生中斷事件,才去執行按鈕被按下時要處理的事。這次要我們的目標功能是每次按下按鈕後,LED 的閃爍速度就會變化。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開 發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:GPIO 輸入
前言:在上一篇中我們介紹了基本的 STM32 GPIO 輸出,並寫了一個簡單的 LED 閃爍程式,還教了 PIO 的多環境設定。這一篇要接續介紹 LibOpenCM3 的基本 GPIO 輸入寫法,功能為當按下按鈕時 LED 會亮起。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
STM32 LibOpenCM3:GPIO 輸出
前言:終於要開始實際寫程式了,接續上一篇的內容,這次要教最基本的 LibOpenCM3 的 GPIO 輸出用法,會控制一個 LED 燈使其閃爍。
發佈簡單入門 LibOpenCM3 STM32 嵌入式系統開發#STM32
#LibOpenCM3
#教學
#C/C++
#程式
#嵌入式
[LibOpenCM3 × STM32教學-4] 輸出PWM並控制Duty Cycle及頻率
我在 2022 年 9 月重新寫了與本文內容相近的文章,建議可以觀看新文章:- STM32 PWM 脈波寬度調變- STM32 LibOpenCM3:PWM 脈波寬度調變前言:LibOpenCM3 是一個 Open-Source 的 ARM Cortex-M3 微控制器底層硬體函式庫,支援包含 STM32 在內的多種微控制器。本文將以 STM32F103RB(Nucleo F103RB)作為示範,介紹如何使用 LibOpenCM3 寫出 STM32 的 PWM(Pulse-Width Modulation) 功能,並且可以控制頻率與 Duty Cycle(佔空比)。
發佈LibOpenCM3 × STM32教學#STM32
#電子電路
#教學
#C/C++
#程式
#嵌入式
[LibOpenCM3 × STM32教學-3] Timer計時器中斷
我在 2022 年 9 月重新寫了與本文內容相近的文章,建議可以觀看新文章:- STM32 Timer 計時器- STM32 LibOpenCM3:Timer 計時器前言:LibOpenCM3 是一個 Open-Source 的 ARM Cortex-M3 微控制器底層硬體函式庫,支援包含 STM32 在內的多種微控制器。本文將以 STM32F103RB(Nucleo F103RB)作為示範,介紹如何使用 LibOpenCM3 寫出 STM32 的計時器(Timer)中斷功能。
發佈LibOpenCM3 × STM32教學#STM32
#電子電路
#教學
#C/C++
#程式
#嵌入式