簡體   English   中英

STM32 - TIM2_ETR 引腳,連接到引腳 PA0(按鈕),以奇怪的方式遞增定時器

[英]STM32 - TIM2_ETR pin, connected to pin PA0 (button), incrementing the timer in strange way

我試圖在 6 個階段實現 PWM LED 調光,其中每個階段都更亮,基於單擊按鈕,增加外部引腳,為定時器提供值。

我面臨一個問題,有時, value變量比它應該的大,並且跳過了某些級別的亮度。 例如, value遞增:1,2,3,然后跳轉到 6,7 等。

任何人都可以查明我犯的錯誤在哪里。 這是代碼:

//編輯:代碼已刪除,因為它是學校作業

這看起來像是接觸反彈。 當 CPU 處理輸入時,一個簡單的解決方法是在檢測到事件后在一定時間內禁用輸入。 由於您直接從按鈕控制計時器輸入,因此您可能沒有太多控制權。 但是,我會嘗試使用 SMCR 寄存器的 ETF 字段(在您的情況下可能由 sClockSourceConfig.ClockFilter 字段設置)和 CR1 寄存器的時鍾除數 CKD(在您的代碼中看起來像 htim2.Init.ClockDivision) (抱歉,我不熟悉 STM 庫)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM