第一个延时函数:

void delay(u16 num)
{u16 i,j;for(i=0;i<num;i++)for(j=0;j<0x800;j++);
}
eg:delay(50);

第二个延时函数:

void Delayms(u16 ms)
{u16 i,j;u8 k;for(i=0;i<ms;i++)for(j=0;j<0x0500;j++) k++;
}

第三个延时函数:

static u8  fac_us=0;//us延时倍乘数
static u16 fac_ms=0;//ms延时倍乘数
//初始化延迟函数
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init(u8 SYSCLK)
{SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟  HCLK/8fac_us=SYSCLK/8;         fac_ms=(u16)fac_us*1000;
}
//延时nms
//注意nms的范围
//SysTick->LOAD为24位寄存器,所以,最大延时为:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK单位为Hz,nms单位为ms
//对72M条件下,nms<=1864
void delay_ms(u16 nms)
{                 u32 temp;        SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)SysTick->VAL =0x00;           //清空计数器SysTick->CTRL=0x01 ;          //开始倒数  do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   SysTick->CTRL=0x00;       //关闭计数器SysTick->VAL =0X00;       //清空计数器
}
//延时nus
//nus为要延时的us数.
void delay_us(u32 nus)
{       u32 temp;            SysTick->LOAD=nus*fac_us; //时间加载            SysTick->VAL=0x00;        //清空计数器SysTick->CTRL=0x01 ;      //开始倒数   do{temp=SysTick->CTRL;}while(temp&0x01&&!(temp&(1<<16)));//等待时间到达   SysTick->CTRL=0x00;       //关闭计数器SysTick->VAL =0X00;       //清空计数器
}

STM32中3个延时函数相关推荐

  1. STM32中的timers中断处理函数

    STM32中的timers中断处理函数 1.在固件库函数里面,用来读取中断状态寄存器的值判断中断类型的函数是: ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, ...

  2. avr-gcc中关于delay延时函数的应用修改版[ourdev]

    在51中我们的延时函数都是自己编写的,无论是在汇编中还是在C言语中.虽然有模板,有时还是有点烦.呵呵.不过在应用avr 单片机的时候我们就有福了.因为avr-gcc 提供给我们很方便的delay 延时 ...

  3. 延时作用是什么意思c语言,单片机中C语言延时函数

    原标题:单片机中C语言延时函数 延时程序计算2009-11-02 22:15单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有 ...

  4. DSP中两个延时函数的区别(转)

    在编程的时候可以用CCS自带的延时函数,在使用时我发现有两个延时函数都可以用: DELAY_US(1); DSP28x_usDelay(1); 在调用DELAY_US(1)这一函数时,必须要有: #i ...

  5. C\C++中计时、延时函数

    C\C++标准库中提供了两种计时函数clock()和time().其用法如下: (1)clock()函数用法 void timeConsume() {double start,stop,duratio ...

  6. Linux延时(延迟)函数比较:介绍Linux系统中常用的延时函数sleep、usleep、nanosleep、select和std::sleep_for()的区别和使用场景

    首先,需要了解各个睡眠函数的作用和使用场景. sleep函数用于让进程休眠指定的秒数,适用于需要较长时间的休眠场景: usleep函数用于让进程休眠指定的微秒数,适用于需要较短时间的休眠场景,不精确: ...

  7. 【精确延时函数】IAR(MSP430)中的精确延时函数

    在 IAR 软件430的编译器里面我们可以利用它内部的延时子程序来实现我们想要的高精度软件延时,方法如下: 具体如下[引用别人的,这个延时函数很高]: 注意: __delay_cycles(x),x必 ...

  8. 单片机中C语言延时函数

    单片机C语言延时程序计算2009-11-02 22:15单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有它不足之处:它的延时 ...

  9. 单片机c语言中延时函数的作用,单片机中C语言延时函数

    单片机C语言延时程序计算2009-11-02 22:15单片机C语言延时程序用C语言写出来程序非常的简练,它是一种模块化的语言,一种比汇编更高级的语言,但是就是这样一种语言也还是有它不足之处:它的延时 ...

最新文章

  1. linux下怎么编译贪吃蛇,Linux 环境下C语言编译实现贪吃蛇游戏(转载)
  2. PyFlink 在聚美优品的应用实践
  3. 为Python终端提供持久性历史记录
  4. VR一体机行业调研:用户活跃未达预期,广告收益前景堪忧
  5. Java自带的keytool命令
  6. java游戏鬼吹灯安卓版下载_鬼吹灯手机游戏下载
  7. 精选 Hive 高频面试题11道,附答案详细解析(好文收藏)
  8. 从零开始之驱动发开、linux驱动(二十、linux设备驱动中的并发控制)
  9. Qt导航栏 QListWidget
  10. dell电脑 驱动下载地址
  11. skyeye linux qt,在ARM9上安装Linux,利用SkyEye模拟器及U-BOOT引导
  12. 链接无线路由器后局域网无法连接服务器,局域网部分电脑连接路由器(交换机)后无法上网该怎么解决?...
  13. 【码农学编曲】Cubase乐器轨音频轨各种轨没声音的终极解决方案
  14. GaussDB(DWS)介绍
  15. Hander异步消息处理机制完全解析
  16. [小甲鱼] 零基础入门python第031讲课后测试题及答案:永久存储,腌制一缸美味的泡菜
  17. 大众点评必吃榜的必然
  18. Thinkphp里面设置url伪静态
  19. 《炬丰科技-半导体工艺》微泡基础知识及其在半导体清洗中的应用
  20. 北斗导航 | 航空所需导航性能与完好性监测(理论):PBN、NPA、APV、CAT、RNAV、XPL、XAL

热门文章

  1. 团队任务3:每日立会(2018-10-18)
  2. 417 Pacific Atlantic Water Flow 太平洋大西洋水流
  3. dynamic_cast, static_cast, const_cast, reinterprt_cast浅析
  4. docker命令解析
  5. oracle connect by用法
  6. 多用户虚拟Web3D环境Deep MatrixIP9 1.04发布
  7. Flash 与物理笔记:简单的小球重力模拟
  8. 哇赛!我是小龙女啊!
  9. OpenGL画矩形函数:glRectf,四个参数分别表示了位于对角线(左下到右上)上的两个点的横纵坐标
  10. 自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐