void Delay(__IO u32 nCount)最简单的延时函数

本文详细解析了单片机中的延时函数实现原理,包括函数结构、参数含义及使用方法,帮助初学者理解其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最开始学习单片机的时候,无论是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为止





评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值