最簡單的閃爍led的方式莫過於在主函式的while迴圈中使用短暫延時並不斷開啟和關斷led,此處不做討論
該簡單工程執行在野火mini開發板上,板上有兩顆led(d4, d5),可以通過巨集定義的方式控制led開關
#define led_d4_on gpio_resetbits(led_gpio, led_d4_pin)#define led_d4_off gpio_setbits(led_gpio, led_d4_pin)
#define led_d4_toggle gpio_togglebits(led_gpio, led_d4_pin)
#define led_d5_on gpio_resetbits(led_gpio, led_d5_pin)
#define led_d5_off gpio_setbits(led_gpio, led_d5_pin)
#define led_d5_toggle gpio_togglebits(led_gpio, led_d5_pin)
其中gpio的置位/復位函式由庫提供,仿照該格式通過暫存器操作定義了gpio位翻轉函式
#define gpio_togglebits(gpiox, gpio_pin) gpiox->odr ^= gpio_pin
這樣極大地方便了對led的操作
開發板上有一顆stm32f103rc的微控制器,系統時鐘為72mhz,定時器時鐘頻率與之相同,通過36000分頻,1000的中斷週期實現led 1hz的閃爍頻率
void mini_led_config(void)
中斷處理函式中判斷中斷標誌並清除中斷標誌,然後做led翻轉動作
void led_d4_tim_irq_handler(void)}
STM32使用TIM閃爍LED 輸出比較方式
stm32定時器輸出比較器可以直接操作對應的gpio,在計數器值等於比較暫存器的值時,對應的gpio可以有以下四種動作 無動作啟用 取消啟用 翻轉啟用電平由輸出極性暫存器決定 將led置於定時器輸出比較對應的gpio上,對它的操作將非常方便,完全由硬體完成,不消耗cpu時間,無需中斷,每個定時器都對...
STM32使用TIM閃爍LED PWM方式
這次實驗實現乙個呼吸燈的效果,led在第一秒內漸亮,在第二秒內漸暗,如此反覆 控制led的pwm波形階梯數為100,即2秒內pwm的占空比從0 到100 範圍內先遞增後遞減且遞增 遞減的幅度為1 在設計stm32時,將定時器時鐘7200分頻後得到的10k時鐘作為計數器時鐘,並且設定週期為100,這樣...
利用stm32定時器實現LED燈閃爍
本文採用晶元為stm32f103rc,定時器為systick。systick 系統定時器是屬於 cm3 核心中的乙個外設,內嵌在 nvic 中。系統定時器 是乙個 24bit 的向下遞減的計數器,計數器每計數一次的時間為 1 sysclk,一般我們設定系統時鐘 sysclk 等於 72m。當重裝載數...