滴答定時(shí)器與普通定時(shí)器 滴答定時(shí)器的中斷優(yōu)先級(jí)怎么設(shè)置?
滴答定時(shí)器的中斷優(yōu)先級(jí)怎么設(shè)置?中斷不是輪詢。例如,在最常見(jiàn)的UART通信過(guò)程(發(fā)送和接收數(shù)據(jù))中,有兩種方式,一種是中斷,另一種是輪詢。如果中斷是輪詢,則兩者之間沒(méi)有區(qū)別。但是中斷(內(nèi)部或外部中斷)
滴答定時(shí)器的中斷優(yōu)先級(jí)怎么設(shè)置?
中斷不是輪詢。例如,在最常見(jiàn)的UART通信過(guò)程(發(fā)送和接收數(shù)據(jù))中,有兩種方式,一種是中斷,另一種是輪詢。如果中斷是輪詢,則兩者之間沒(méi)有區(qū)別。但是中斷(內(nèi)部或外部中斷)與操作系統(tǒng)的處理時(shí)序、系統(tǒng)的定時(shí)器和CPU的體系結(jié)構(gòu)密切相關(guān)。每個(gè)中斷(硬件中斷)對(duì)應(yīng)于CPU硬件的一個(gè)引腳。當(dāng)硬件(CPU)引腳初始化時(shí),它被設(shè)置(啟用/禁用,中斷優(yōu)先級(jí))。每個(gè)CPU都有自己的中斷向量表,每個(gè)中斷向量對(duì)應(yīng)一個(gè)地址(中斷處理程序)。當(dāng)中斷發(fā)生時(shí)(緊急情況,此處僅為硬件中斷),相應(yīng)的管腳將發(fā)生電平變化(高電平有效或低電平有效),通知系統(tǒng)優(yōu)先處理(您自己的中斷處理程序),跳轉(zhuǎn)到相應(yīng)的中斷向量(地址),并執(zhí)行相應(yīng)的中斷處理程序。在中斷處理函數(shù)中調(diào)用中斷函數(shù)。沒(méi)關(guān)系。關(guān)鍵是這個(gè)延遲函數(shù)不能使用其他中斷。STM32只能同時(shí)處理一個(gè)中斷。如果中斷沒(méi)有被完全處理。即使存在其他高級(jí)中斷,也不會(huì)執(zhí)行handler函數(shù)。您說(shuō)過(guò)您在延遲函數(shù)中使用了systemtick,在exti0u1中,當(dāng)irqhandler被執(zhí)行時(shí),systemtick的中斷處理不能被執(zhí)行。你的系統(tǒng)時(shí)間不會(huì)增加,所以你的延遲函數(shù)永遠(yuǎn)不會(huì)等到最后。如果必須延遲,可以使用空循環(huán)。