首页 > 其他分享 >基本函数--delay

基本函数--delay

时间:2024-12-26 20:42:39浏览次数:6  
标签:函数 temp -- nus us delay SysTick fac

delay头文件分为三个函数

static u8  fac_us=0;//us延时倍数						
static u16 fac_ms=0;//ms延时倍数	
delay_init(void);
delay_ms(u16 nms);
delay_us(u32 nus);

delay_init(void)函数

//没看懂在干嘛
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);

//SystemCoreClock 定义在芯片文件中  SYSCLK_FREQ_72MHz  72000000
//定义了系统时钟的频率常量  72MHz
//系统时钟通常与微控制器的主时钟源(如晶振或PLL输出)相关
//和现实的1us没什么关系,这里只是定义 1us是当前这个系统时钟的1/8
fac_us=SystemCoreClock/8000000;//8Mhz


// 1000us=1ms
fac_ms=(u16)fac_us*1000;

delay_us(u32 nus)函数;

//nus表示我们想要的演示 us数
void delay_us(u32 nus)
{		
	u32 temp;
    //这个寄存器用于设置定时器的重载值,即 SysTick 定时器计数到达这个值时会重新加载并重新开始计数	    	 
	SysTick->LOAD=nus*fac_us; 
    //你可以读取它来查看当前定时器的计数值,表示从0开始计时					 		 
	SysTick->VAL=0x00;
    //时钟使能,表示开始计时        					
	SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;
    //计时完成后,SysTick->CTRL寄存器的标志为改变
    //具体就是 检查(temp&0x01) 和  !(temp&(1<<16) 这个标志为,如果满足就表示计时结束	  
	do
	{
		temp=SysTick->CTRL;
	}while((temp&0x01)&&!(temp&(1<<16)));
    //关闭计时使能位,关闭计时时钟		   
	SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
	SysTick->VAL =0X00;      						 
}

标签:函数,temp,--,nus,us,delay,SysTick,fac
From: https://www.cnblogs.com/blogofzcfu/p/18634153

相关文章

  • Navicat 免费版(Navicat Premium Lite)
    NavicatPremiumLiteNavicatPremiumLite作为NavicatPremium17的精简版,可创建连接多种数据库,如MySQL、MariaDB、MongoDB、Redis、PostgreSQL、SQLite、SQLServer、OceanBase和GaussDB。它可满足广大初级用户和非商业用途的基础数据库管理需求。......
  • python的网页自动化工具DrissionPage
    一直以来用的都是Python+Selenium实现自动化。直到发现了DrissionPage,实际用过之后写脚本速度提高了100%,执行效率提高了50%。代码简洁,功能强大,Selenium代码迁移也很丝滑。 概述基于python的网页自动化工具。既能控制浏览器,也能收发数据包。可兼顾浏览器自动化的便利性和re......
  • 2024年最新国内可用的Docker镜像加速器地址汇总
    Docker镜像加速器列表资源收集于网络,如果侵犯了您的权益,请联系我删除相关信息。 状态地址✅https://docker.1panel.live✅https://hub.rat.dev✅https://docker.actima.top✅https://atomhub.openatom.cn✅https://docker......
  • 残差网络
    1.什么是残差网络?残差网络(ResNet)是一种特别的神经网络结构,它解决了一个非常重要的问题:当我们把网络变得越来越深时,性能不升反降的问题。打个比方:你让一个学生做很简单的数学题,他可能做得很好;但你让他做一百道题,他可能会累到答错很多,结果总分变低。这种情况在深度学习里就叫梯......
  • mysql数据库
    文章目录基本操作操作数据库操作数据库数据库列类型数据库字段属性操作数据表数据表类型(数据库引擎MyISAM与InnoDB)数据管理外键(了解)DML语言DQL查询数据指定查询字段where条件子句联表查询分页和排序子查询基本操作连接数据库命令行连接mysql-u用户名-p......
  • 省选集训杂题乱写
    碎碎念不去做专题做这个是吧?......
  • C 实现植物大战僵尸(一)
    C实现植物大战僵尸(一)对应资源链接,C语言项目:完整版植物大战僵尸以下内容为个人实现版,与原UP主项目代码内容有出入,提高了些可读和简洁性一创建主场景安装easyx库,easyx官网主场景代码#include<stdio.h>#include<graphics.h>//引用图形库头文件/*......
  • 学籍管理系统:技术框架与数据库设计
    3.1可行性分析系统的设计必须符合正常逻辑,所以设计之处,也需要从其他方面来论证其可行性。3.1.1经济可行性开发学籍管理系统,存在经济上面的支持,必须经济上的支持才可以有序进行,比如是否需要额外购买开发工具,购买开发电脑,或者从开发技术上是否是免费开源,达到的效果上面是......
  • 面试攻略:巧用电力行业项目经历,点亮你的求职路
    企业管理类企业资源规划系统(ERP):整合电力公司内部各个部门的资源与信息,实现企业内部各项业务的流程优化和资源统一分配,包括财务管理、人力资源管理、物资管理等模块.财务管理系统:管理和监控企业的财务状况,涵盖会计科目管理、应收应付和资金流动跟踪以及财务报告生成等功能.人力......
  • 学籍管理系统:实现教育管理现代化
    2.1Tomcat简介只要学习JavaWeb项目就不得不学习Tomcat。Tomcat是一种免费的开源的一种JavaWeb项目的容器,完美继承了Apache服务器的特性,并且里面添加可以自动化运行的JavaWeb组件,让JavaWeb项目可以完全的运行到Tomcat里面。对于特大型项目来讲,直接用Tomcat会造成启动......