lwip協(xié)議棧源碼詳解 stm32關(guān)于系統(tǒng)滴答定時(shí)器(systick)?
在中斷處理函數(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ù)
在中斷處理函數(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)。
stm32關(guān)于系統(tǒng)滴答定時(shí)器(systick)?
如果您是初學(xué)者,這些復(fù)雜的函數(shù)暫時(shí)不會(huì)使用。
初學(xué)者主要學(xué)習(xí)系統(tǒng)時(shí)鐘配置、GPIO配置和控制、常用外設(shè)如串口、SPI、看門(mén)狗用法、定時(shí)器、ADC用法等,這是一個(gè)相對(duì)簡(jiǎn)單的項(xiàng)目所需要的功能。有了這些基礎(chǔ),我們可以逐步升級(jí)和擴(kuò)大。
STM32提供了一個(gè)免費(fèi)的stm32cubeide集成開(kāi)發(fā)環(huán)境,嵌入了一個(gè)可視化的stm32cubemx初始化工具,非常易于使用。通過(guò)對(duì)其初始化代碼的解釋,也有助于快速了解相關(guān)功能寄存器的配置和使用。
您可以參考我的專題,詳細(xì)介紹STM32的功能和用法。
初學(xué)STM32單片機(jī)是用正點(diǎn)原子的mini版好還是精英版好呢?
中斷不是輪詢。例如,在最常見(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)的中斷處理程序。