[英]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.