void Delay(__IO u32 nCount)最簡單的延時函式
最開始學習微控制器的時候,無論是51還是STM32等,都會在流水燈等示例中見到延時函式,剛開始我就弄不明白,我今天認真的剖析一下.
首先是函式體
void Delay(__IO u32 nCount)
{
for(; nCount != 0; nCount--);
}
首先根據C語言的規範可以知道這是一個沒有返回值的帶形式引數的函式.
C語言中的函式使用規範如下:
return_type function_name( parameter list ) { body of the function }
所以可以知道第一個是:函式返回的資料型別
第二個是:函式名
第三個是:引數
第四個是:函式主體
所以再來看這個延時函式就比較容易理解了:
void Delay(__IO u32 nCount)
{
for(; nCount != 0; nCount--);
}
這個延時函式沒有返回值,函式名稱是Delay,同時函式的引數部分中的_IO是型別修飾符;u32是資料型別,同等於uint_32_t同等於unsigned int型
函式的主體是for迴圈遞減,大致的意思是32位的非負int型資料nCount一直遞減,遞減到0,就產生了一個不太精確的延時函式.
其中_IO u32可以看作一個資料型別;具體可以在相關MCU標頭檔案,例如"stm32f10x.h"中檢視定義.大致等同32位無符號int型別
使用的時候若
void Delay(5000)
則就是5000自減到0為止相關文章
- 延時函式delay() sleep() Sleep()函式
- STM32 HAL 定時器代替HAL_Delay延時函式定時器函式
- 延時函式函式
- 簡述static關鍵字、void與void *(void指標)、函式指標指標函式
- typedef void (*Fun) (void) 的理解——函式指標——typedef函式指標函式指標
- 簡單的printf函式與scnaf函式函式
- 只需兩步便可生成 51 微控制器最精準的延時函式函式
- javascript定時器函式簡單介紹JavaScript定時器函式
- 延時 (遲) 操作的 PHP 簡單實現PHP
- linux 延時函式 msleep() 與mdelay()Linux函式
- setTimeout()函式延遲迴圈語句的異常簡單介紹函式
- STM32延時函式的四種方法函式
- javascript時間物件Date常用時間日期函式簡單分享JavaScript物件函式
- 快取函式的簡單使用快取函式
- 一些簡單的函式函式
- 函式指標簡單的列子函式指標
- 時間函式的簡單理解和應用(time.h)函式
- 函式表示式和函式宣告簡單介紹函式
- 實現簡單延遲佇列和分散式延遲佇列佇列分散式
- 簡單延時訊息替代改造JOB實現
- 簡單的檔案快取函式快取函式
- Oracle中coalesce函式的簡單理解Oracle函式
- Python函式簡單示例Python函式
- vue tendet函式簡單分享Vue函式
- atoi函式簡單實現函式
- jquery函式$.proxy簡單示例jQuery函式
- 51微控制器C語言延時函式C語言函式
- php訂單延時處理-延時佇列PHP佇列
- [手遊逆向]如何不完美呼叫void函式函式
- 如何最簡單的實現分散式快取分散式快取
- 對高階函式的簡單認識函式
- 三角函式形成簡單的波浪函式
- 簡單歡樂的依賴注入函式依賴注入函式
- 簡單探索Python中的filter函式PythonFilter函式
- 封裝一個簡單的動畫函式封裝動畫函式
- Linux下getopt()函式的簡單使用Linux函式
- js isNaN函式的用法簡單介紹JSNaN函式
- jQuery常用的動畫函式簡單介紹jQuery動畫函式