void Delay(__IO u32 nCount)最简单的延时函数
来源:互联网 发布:通达信源码论坛 编辑:程序博客网 时间:2024/05/21 18:37
最开始学习单片机的时候,无论是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为止
阅读全文
0 0
- void Delay(__IO u32 nCount)最简单的延时函数
- void HAL_Delay(__IO uint32_t Delay) 函数溢出的问题
- asp脚本延时 自定义的delay函数
- 延时函数sleep和delay的区别
- C51延时函数delay的编写
- Delay 延时函数
- 利用KERNEL32 API函数实现的通用延时函数DELAY
- vb.net 不会无响应的延时函数delay
- 最简单的延时程序
- EGL--延时函数头文件 DELAY.H
- EGL--延时函数实现文件 DELAY.INC
- void usart_config(u32 BaudRate)
- epoll_data_t里面的void *ptr; int fd; u32; u64 分析
- 项目总结(二)——改进的延时函数Delay
- avr-gcc中关于delay延时函数的应用(原发于2007-11-16)
- avr-gcc中关于delay延时函数的应用修改版[ourdev]
- 自定义的delay函数
- u32和字符串的转换函数
- Lab_2
- nvm的window下配置和安装
- tcp粘包和nagle算法
- Caffe-SSD(single-shot-multibox)在Windows平台下的配置(CPU和GPU)与训练记录
- gmapping 算法解析
- void Delay(__IO u32 nCount)最简单的延时函数
- NOIP2004 虫食算 题解
- 技能终将过时,而能力与时俱进
- voliate
- IDEA注册码问题解决
- 围在栅栏中的爱
- Linux下Caffe如何调试 IDE:Anjuta
- leetcode 19. Remove Nth Node From End of List
- fitnesse 新手入门