lwip協(xié)議棧源碼詳解 stm32關(guān)于系統(tǒng)滴答定時器(systick)?
在中斷處理函數(shù)中調(diào)用延遲函數(shù)。沒關(guān)系。關(guān)鍵是這個延遲函數(shù)不能使用其他中斷。STM32只能同時處理一個中斷。如果中斷沒有被完全處理。即使存在其他高級中斷,也不會執(zhí)行handler函數(shù)。您說過您在延遲函數(shù)
在中斷處理函數(shù)中調(diào)用延遲函數(shù)。沒關(guān)系。關(guān)鍵是這個延遲函數(shù)不能使用其他中斷。STM32只能同時處理一個中斷。如果中斷沒有被完全處理。即使存在其他高級中斷,也不會執(zhí)行handler函數(shù)。您說過您在延遲函數(shù)中使用了systemtick,在exti0u1中,當(dāng)irqhandler被執(zhí)行時,systemtick的中斷處理不能被執(zhí)行。你的系統(tǒng)時間不會增加,所以你的延遲函數(shù)永遠(yuǎn)不會等到最后。如果必須延遲,可以使用空循環(huán)。
stm32關(guān)于系統(tǒng)滴答定時器(systick)?
如果您是初學(xué)者,這些復(fù)雜的函數(shù)暫時不會使用。
初學(xué)者主要學(xué)習(xí)系統(tǒng)時鐘配置、GPIO配置和控制、常用外設(shè)如串口、SPI、看門狗用法、定時器、ADC用法等,這是一個相對簡單的項目所需要的功能。有了這些基礎(chǔ),我們可以逐步升級和擴大。
STM32提供了一個免費的stm32cubeide集成開發(fā)環(huán)境,嵌入了一個可視化的stm32cubemx初始化工具,非常易于使用。通過對其初始化代碼的解釋,也有助于快速了解相關(guān)功能寄存器的配置和使用。
您可以參考我的專題,詳細(xì)介紹STM32的功能和用法。
初學(xué)STM32單片機是用正點原子的mini版好還是精英版好呢?
中斷不是輪詢。例如,在最常見的UART通信過程(發(fā)送和接收數(shù)據(jù))中,有兩種方式,一種是中斷,另一種是輪詢。如果中斷是輪詢,則兩者之間沒有區(qū)別。但是中斷(內(nèi)部或外部中斷)與操作系統(tǒng)的處理時序、系統(tǒng)的定時器和CPU的體系結(jié)構(gòu)密切相關(guān)。每個中斷(硬件中斷)對應(yīng)于CPU硬件的一個引腳。當(dāng)硬件(CPU)引腳初始化時,它被設(shè)置(啟用/禁用,中斷優(yōu)先級)。每個CPU都有自己的中斷向量表,每個中斷向量對應(yīng)一個地址(中斷處理程序)。當(dāng)中斷發(fā)生時(緊急情況,此處僅為硬件中斷),相應(yīng)的管腳將發(fā)生電平變化(高電平有效或低電平有效),通知系統(tǒng)優(yōu)先處理(您自己的中斷處理程序),跳轉(zhuǎn)到相應(yīng)的中斷向量(地址),并執(zhí)行相應(yīng)的中斷處理程序。