STM32中3个延时函数「建议收藏」

STM32中3个延时函数「建议收藏」第一个延时函数:voiddelay(u16num){u16i,j;for(i=0;i<num;i++)for(j=0;j<0x800;j++);}eg:delay(50);第二个延时函数:staticu8fac_us=0;//us延时倍乘数staticu16fac_ms=0;//ms延时倍乘数//初始化延迟函数//SYSTICK的时钟固…

大家好,又见面了,我是你们的朋友全栈君。

第一个延时函数:

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/8
	fac_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;       //清空计数器	 
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151733.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 游戏建模:手绘暗黑小萝莉「建议收藏」

    平时喜欢画画,最近呐再做一些个人作品。然后再A站各种淘原画,从一堆原画中挑选自己喜欢的,把它画成模型。然后发现选的原画每次都给自己挖了很多的坑。在选这张原画的时候想的是,小萝莉卡哇伊。一身金闪闪发光blingbling的,贼漂酿。头发直接就是一个条一个条的,全身除了头上的装饰还有肩部的就没啥了,还是ok的。但是在实际的模型制作还有贴图制作中发现,emmmm,有一个深坑,快爬不出来了。谁来救一下可爱的小哥哥。下面呐就是我选的卡哇伊小姐姐。挑战一下这种非正常肤色。(图1原画)下面呐…

    2022年4月11日
    48
  • CSS面试题

    CSS面试题1.有哪些方式(CSS)可以隐藏页面元素?1.opacity:0本质是将元素的透明度降为0,看起来是隐藏了,但是依然占据空间2.visibility:hidden占据空间3.display:none彻底隐藏元素,元素从文档流中消失,不占据空间4.z-index:-9999原理是将层级放到底部,看起来是隐藏了5.overflow:hidden这个只是隐藏元素溢出的部分6.transform:scale(0,0)将元素缩放为0,但是依然占据空间2.em\px\rem区别?Px:绝对

    2022年5月31日
    40
  • Python网络爬虫精要

    Python网络爬虫精要

    2021年11月8日
    40
  • 暂时性死区 理解

    暂时性死区 理解let和const声明的变量不存在变量提升,其作用域都是块级作用域,凡是在声明变量之前使用变量就会报错,所以,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporaldeadzone,简称TDZ)。if(true){//死区开始lzp=’lut’;//ReferenceErrorconsole….

    2022年6月26日
    41
  • 深入理解 JVM 垃圾回收机制及其实现原理

    深入理解 JVM 垃圾回收机制及其实现原理对于JVM来说,我们都不陌生,其是JavaVirtualMachine(Java虚拟机)的缩写,它也是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈等,还具有相应的指令系统,其本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在JVM的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(`.class`)就可以在该平台上运行。这就是

    2022年4月27日
    26
  • css修改滚动条样式可以兼容ie吗_css设置滚动条

    css修改滚动条样式可以兼容ie吗_css设置滚动条写过挺多项目都需要改变滚动条的默认样式并不想单独下载和引入插件因此纯css修改默认滚动条的样式这次算统一整理下方法,直接上代码。&::-webkit-scrollbar{//滚动条的背景width:16px;background:#191a37;height:14px;}&::-webkit-scrollbar-track,&::-webkit-scrollbar-thumb{border-radius:999px;

    2022年10月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号