历史上的今天
今天是: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; //清空计数器 }
史海拾趣
|
各位朋友在自己的维修或DIY过程中,经常会遇到需要制作一个应用电路的情况。这时我们首先就必须解决印刷电路板的问题。找个地方去买吧,你得寻找到相应的供货信息,再说联系购买也还有个过程你要能等得起。问题是你所需要的板子是否刚好就有得卖的 ...… 查看全部问答> |
|
总结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层,只有一个电源网络吗?假设电路中有5V、+15V、-8V的电源,那么在电源层如何分配这些电源?电源层一般不都是直接大面积铺铜吗?我是新手,请各位前辈多多指教!谢谢!… 查看全部问答> |
|
本人在使用该芯片过程中遇到一些问题,想请有经验的朋友指教一下。 本人用720极的圆感应同步器作为角度传感器,想利用AD2S80来解码。 激磁信号使用的是5Khz的正弦波,AD2S80设置的分辨率为12位,该芯片的外围电路完全按照芯片手册上的针对5KHZ/12 ...… 查看全部问答> |
|
我是个新手,最近领导让搞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… 查看全部问答> |
|
关于IAR4.42和STM32疑难杂症(已解决.使用IAR5.30) 请各位大虾诊断!开发平台 (IAR4.42(带补丁)+ JLINK + STM32 + uCOS-II v2.86)写的源代码在自己的PC上运行很正常, 但把整个工程到其他两个同事的PC上都出现了同一个问题!系统中有一个TIM6的定时中断, ...… 查看全部问答> |




