历史上的今天
返回首页

历史上的今天

今天是:2024年09月11日(星期三)

正在发生

2018年09月11日 | STM32中3个延时函数

2018-09-11 来源:eefocus

第一个延时函数:


void delay(u16 num)

{

  u16 i,j;

  for(i=0;i

    for(j=0;j<0x800;j++);

}

eg:delay(50);

第二个延时函数:


void Delayms(u16 ms)

{

  u16 i,j;

  u8 k;

  for(i=0;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;       //清空计数器  

}


推荐阅读

史海拾趣

HIT(日立)公司的发展小趣事
在电路设计时充分考虑各种因素,如元件的耐压、耐流能力,以及电路的抗干扰能力等,确保电路能够稳定工作。
智浦欣(Chipstar)公司的发展小趣事

随着公司规模的不断扩大和业务的快速发展,智浦欣公司意识到,必须加强内部管理和人才培养才能确保公司的持续健康发展。于是,公司引进了一套先进的管理体系和人才培养计划。在管理体系方面,公司建立了完善的组织架构和业务流程,提高了工作效率和协同能力;在人才培养方面,公司注重员工的个人发展和职业规划,提供了多样化的培训和学习机会,激发了员工的工作热情和创新能力。

ALSC [Alliance Semiconductor Corporation]公司的发展小趣事

为了保持竞争优势,ALSC始终将技术创新作为核心驱动力。公司投入大量资源用于研发,不断推出具有创新性的半导体产品。其中,一款具有高性能和低延迟的芯片产品赢得了市场的广泛认可,为公司的快速发展奠定了坚实的基础。

Apacer公司的发展小趣事

除了产品创新,Apacer宇瞻科技还注重为客户提供量身定制的解决方案。在某次客户系统升级中,宇瞻科技的技术团队发现原有SD卡无法满足大量随机小数据的存取应用,甚至可能缩短SSD使用寿命。于是,宇瞻科技建议客户导入Page Mapping技术,并搭配Smart Read Refresh技术的SD卡,成功解决了客户的存储问题。这一技术突破不仅帮助客户实现了系统升级,也为宇瞻科技赢得了更多的信任和赞誉。

All Sensors公司的发展小趣事

在过去的30年里,All Sensors一直致力于为OEM客户设计定制各种经典的传感器。这些传感器不仅具有高精度、高可靠性和高灵敏度,还广泛应用于航天航空、医疗设备、环保仪器等多个领域。凭借卓越的产品性能,All Sensors的部分经典产品甚至被业界某大公司收购并发扬光大,进一步扩大了其在电子行业的影响力。

Altech公司的发展小趣事

凭借在铝合金导体领域的卓越成就和持续创新,Altech公司成功获得了国家级高新技术企业的认定。这一荣誉不仅是对公司技术实力和创新能力的肯定,也为公司未来的发展提供了有力的支持。作为国家级高新技术企业,Altech公司将继续加大研发投入,推动技术创新,为电子行业的发展做出更大的贡献。

问答坊 | AI 解惑

谈谈简易PCB的手工制作

各位朋友在自己的维修或DIY过程中,经常会遇到需要制作一个应用电路的情况。这时我们首先就必须解决印刷电路板的问题。找个地方去买吧,你得寻找到相应的供货信息,再说联系购买也还有个过程你要能等得起。问题是你所需要的板子是否刚好就有得卖的 ...…

查看全部问答>

感应式触摸按键的测试

感应式触摸按键的测试大家谁做过或者在研究呢?…

查看全部问答>

优秀博客赏析---总结lcd1602的程序代码编写

总结lcd1602的程序代码编写  https://home.eeworld.com.cn/?uid-78120-action-viewspace-itemid-8911 智能车制作全过程 https://home.eeworld.com.cn/?uid-89395-action-viewspace-itemid-8910 调试时钟芯片DS1302有感 https://home.ee ...…

查看全部问答>

Power层电压分配的问题?

在Power层,只有一个电源网络吗?假设电路中有5V、+15V、-8V的电源,那么在电源层如何分配这些电源?电源层一般不都是直接大面积铺铜吗?我是新手,请各位前辈多多指教!谢谢!…

查看全部问答>

单片机卡发板免费送

第二次免费开发板赠送,40mb 开发资料包:实例,原理图,keil 正式版,免费下载 第二次免费开发板赠送,40mb 开发资料包:实例,原理图,keil 正式版,免费下载 下载50个单片机程序实例和开发板原理图,学林电子免费开发板暑期助学活动报名!暑假在家 ...…

查看全部问答>

有用过AD2S80的朋友吗

本人在使用该芯片过程中遇到一些问题,想请有经验的朋友指教一下。 本人用720极的圆感应同步器作为角度传感器,想利用AD2S80来解码。 激磁信号使用的是5Khz的正弦波,AD2S80设置的分辨率为12位,该芯片的外围电路完全按照芯片手册上的针对5KHZ/12 ...…

查看全部问答>

一个关于在友善nano2410下载nk映像的问题

我是个新手,最近领导让搞wince,买了一块友善之臂nano2410的板子,32m dram;64m flash。打算做一些wince 方面的开发。但是nano2410只有nk和eboot文件,不提供bsp和sdk。所以我打算找一个其他的bsp移植上去,同时在pb中生成sdk,用于vs中的开发。 ...…

查看全部问答>

NEC,有时候老是下载不进去程序,出现错误writing to the on-chip debug reserved area is prohibited

NEC,有时候老是下载不进去程序,出现错误writing to the on-chip debug reserved area is prohibited…

查看全部问答>

应急灯电池充电芯片S8233的资料

是三节LI电池的充电芯片,自己想改电池的可以看一下。…

查看全部问答>

关于IAR4.42和STM32疑难杂症(已解决.使用IAR5.30)

请各位大虾诊断!开发平台 (IAR4.42(带补丁)+ JLINK + STM32 + uCOS-II v2.86)写的源代码在自己的PC上运行很正常, 但把整个工程到其他两个同事的PC上都出现了同一个问题!系统中有一个TIM6的定时中断, ...…

查看全部问答>