這兩天 碰到的奇葩問題是 STM32定時器同步的問題。
我的設(shè)計本意是:使用定時器T3以100us的周期來定時發(fā)送命令給 FPGA。由于編碼器出結(jié)果的最長時間為51us。因此,希望PWM中斷要滯后于T3 約60us 。
調(diào)試過程:分別在T3和PWM中斷中置IO1, IO2. 觀察波形,發(fā)現(xiàn)IO1和IO2的周期都對,但相位差不固定,一直在變動。
百思不得其解。。。
后來,嘗試用T2和T3來測試。發(fā)現(xiàn)相位是固定的,原來T2和T3的時鐘來源是APB1 ,而T1的時鐘來源是 APB2 。差異就在這里。
T8用的時鐘是APB2.
改T3為T8, 相位差還是飄動。把T8由向上計數(shù) 也改成 和T1一樣(中央對齊模式),這個時候相位差固定,但由之前的 55us 上升到78us 。估計和清中斷標志有關(guān)。
關(guān)于中斷優(yōu)先級:
1. 中斷優(yōu)先級能分組,但只需要分一次確定下來即可,而不是分多次。若是分2組,則搶占優(yōu)先級可以有0—3 這4個級別。
函數(shù):NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_IRQChannelPreemptionPriority 搶占優(yōu)先級,越小優(yōu)先級越高
NVIC_IRQChannelSubPriority 副優(yōu)先級,越小優(yōu)先級越高
2. 高搶占優(yōu)先級能 打斷 低搶占優(yōu)先級。同一搶占優(yōu)先級的中斷不能相互打斷。
還有一個比較坑爹的情況:在調(diào)試外部中斷時,怎么也進不了中斷。后來查明的原因是 PE6引腳對應(yīng)的中斷源 為 EXTI9_5 。
大量細節(jié)都隱藏在手冊里。文章來源:http://www.zghlxwxcb.cn/news/detail-828619.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-828619.html
到了這里,關(guān)于【經(jīng)驗】STM32的一些細節(jié)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!