歡迎回來，讓我們繼續。 1
所以我要繼續 2
通過在此處創建一個簡單的功能來幫助我打開和關閉深藍色LED。我要去 3
要創建一個簡單的API，我將其命名為藍色，因此將其禁用為藍色 4
而且它也是void void function。 5
基本上，我可以簡單地調用此功能來打開藍色LED 6
讓我們有一個對手，這將是一個開始。 7
在這裡，我們可以使用此運算符打開藍色 8
因此，讓我們將原型放在頂部 9
看看，就把它放在這裡 10
也把這個放在這裡 11
所以現在我要過來。 12
我要做的就是調用一個新函數 13
亮或延遲一秒鐘，然後滅，然後再延遲一秒鐘，對。 14
因此，讓我們在板上進行編譯和測試。 15
零錯誤，零警告。 16
因此，連接您的電路板並下載，我希望您的藍色LED閃爍。 17
我的在閃爍，只是藍色 18
因此，現在讓我們進入調試視圖，並檢查代碼大部分時間都花在了哪裡。 19
所以我將點擊此處進行調試視圖 20
它打開。 21
對。 22
因此，在測試代碼之前，請確保您具有本地視圖，核心堆棧和本地視圖。 23
在這裡 24
如果您不來這裡查看，然後選擇調用堆棧窗口，那麼它將啟用該視圖 25
為了你。 26
所以發生的是，當我在這裡按下此按鈕時，運行，代碼將像我在 27
以正常方式運行固件。 28
當它運行時，我將在開始運行此按鈕時按此按鈕，然後停止按鈕 29
要激活，我將按此按鈕，然後它將停止，然後我們將在哪裡看到 30
代碼停止。 31
因此，我將按此按鈕，代碼將運行，因為您可以看到藍色的LED像預期的那樣閃爍 32
眨眼。 33
因此，我將單擊此處停止。 34
我們中斷代碼，以便可以找到程序停止的位置。 35
對。在通話堆棧中加上本地人 36
視圖。 37
我們意識到，它已停止在此函數，get tick函數中，並且此函數是延遲的一部分 38
模塊。 39
我們可以通過右鍵單擊此處並顯示顏色代碼來找到答案。看到， 40
我們發現它在delay的函數中。 41
因此，我們將再次運行該代碼以停止它，然後查看我正在運行它，然後再次停止。 42
然後我們在同一個地方找到它。 43
它在哪裡度過時間？在延遲中。讓我們第三次這樣做。我只是隨機運行，停止運行 44
然後我們仍然在get tick函數中找到自己，它是延遲函數，對。 45
實際上，這段代碼在延遲功能上花費了大約95％的時間，我們知道延遲功能 46
什麼也沒做。 47
它只會吞噬CPU週期而無所作為。 48
我還應該指出，這種簡單的程序結構就是所謂的背景/前景 49
線程結構，意味著具有正常的主要功能和至少一個中斷服務程序。 50
主功能設置為前台，而中斷服務程序設置為前台 51
的背景。 52
在上面的示例中，我們當然編寫了main函數和一個中斷服務處理程序 53
systick處理程序記住中斷處理程序也稱為中斷服務程序。 54
我還應該向您指出，目前正在進行激烈的辯論，其背景是什麼 55
而這是前景。在某些文本中 56
您會發現主要功能描述為在後台運行，而中斷服務則在前景運行。 57
此類文本的一個示例是microm OS 2。你們中有些人可能很熟悉 58
使用microm操作系統，這是實時的內核，非常流行的工業級microm os兩個真正的 59
時間內核文檔將主線程描述為中斷服務時的後台 60
例行程序是前台。 61
但是，大多數文本都發現將主線程稱為前台和 62
以中斷服務程序為背景，在本課程中，我們將參考 63
主線程作為前台，中斷服務程序a作為後台。 64
讓我們看一下我們剛剛編寫的簡單固件的流程圖。正如我們在這裡看到的，它開始了 65
它初始化GPIO，它打開藍色，然後延遲一秒鐘，然後關閉藍色 66
然後延遲一秒鐘，然後返回。 67
但重要的是這裡的矩形，我們在延遲函數中發現 68
這些箭頭往回走。當執行到達此處時，它會等待事件，並保留下來 69
阻止，直到事件發生。 70
在此示例中，該事件是操縱桿超時。 71
記住，我們通過傳遞給delay函數的參數直接設置了超時時間。 72
我們幾乎每天在嵌入式固件中使用的這種實現方式會造成延遲 73
功能，這就是所謂的阻塞代碼。 74
這就是為什麼程序將大部分時間都用在延遲s中的原因，因為當到達該部分時 75
阻塞直到發生超時。 76
繼續，現在讓我們創建API，以幫助我們切換橙色LED。 77
所以我要做的是像這樣複製我要藍的那些 78
然後將其粘貼到此處，然後在所有找到藍色的地方都將其重命名為橙色，因此我將 79
將其重命名為橙色應為小寫。 80
那邊當然是橙色 81
然後在這裡橙色 82
然後是橙色。 83
是的，這是藍色，我誤將其命名為藍色。 84
所以我只是要重新安排它。 85
這個這裡 86
讓我把它拿到那裡，整理一下，對。 87
被掩蓋了。 88
所以接下來讓我們像這樣在這裡放置新功能的原型 89
讓我們複製此內容，然後粘貼。 90
然後變成橙色， 91
這當然變成橙色