delay函数代码

news/2025/3/15 12:10:42/

 delay.c代码如下

#include "./delay/delay.h"
/*** 功能:SysTick定时器初始化函数* 参数:None* 返回值:None*/
void initSysTick(void)
{SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //设置时钟源8分频SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk;            //使能中断SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;             //开定时器SysTick->LOAD = 9;                                    //随意设置一个重装载值
}
/*** 功能:微秒级延时函数* 参数:xus :具体延时时间  (单位:微秒)* 返回值:None*/
void delay_us(u32 xus)
{SysTick->LOAD = 9 * xus;                               //计9次为1us,xus则重装载值要*9SysTick->VAL = 0;                                      //计数器归零while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk)); //等待计数完成
}
/*** 功能:毫秒级延时函数* 参数:xms :具体延时时间  (单位:毫秒)* 返回值:None*/
void delay_ms(u32 xms)
{SysTick->LOAD = 9000;                                      //计9次为1us,1000次为1msSysTick->VAL = 0;                                          //计数器归零while (xms--){while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk)); //等待单次计数完成}
}

delay.h代码如下 

#include "stm32f10x.h"void initSysTick(void);
void delay_us(u32 xus);
void delay_ms(u32 xms);


http://www.ppmy.cn/news/810134.html

相关文章

STM32中HAL_Delay函数的改写

最近在做NVC与STM32芯片的通信,因为NVC要匹配时序宽度,考虑到系统时钟的频率的设定,所以专门研究了一下,也是为了以后遇到的话可以回头看看笔记之类,也给大家做一个参考 STM32是8分频特性,具体的延迟函数可…

STM32F4(用SysTick实现Delay函数)

STM32F4(用SysTick实现Delay函数) GitHub仓库:https://github.com/XinLiGitHub/STM32F4xx_Delay_Example PS:博文不再更新,后续更新会在GitHub仓库进行。 1,开发环境 1,适用芯片:STM32F4全部芯片 2&…

关于各种型号单片机delay函数不起作用问题的解决方法

这里以单片机HT45F75为例: // 定义一个延时xms毫秒的延时函数 void delay(unsigned int xms) // xms代表需要延时的毫秒数 { unsigned int x,y; for(xxms;x>0;x--) for(y960/4;y>0;y--) { _nop(); }; } (1) 首…

正点原子delay函数移植到rt thread操作系统(HAL库)

正点原子教程中涉及到的操作系统只涉及了UCOS的教程,其中例程的system文件夹中的delay.c函数只是适配了UCOS。 下面将delay.c函数移植到rt thread中,使用的bsp是rt thread stm32中的stm32f407-st-discovery开发板 已修改好的delay.c函数(适配…

linux内核级调用时间delay函数,及常用文件头

最近做一个嵌入式内核级rookit 的编写/ 需要设计一个每3秒亮一次灯的内核级rookit 在设计rookit中使用了delay时间&#xff0c;需要包含<linux/delay.h>头文件。 #include<linux/delay.h> //linux内核级文件头,用户应用层一般调用不了# #include<unistd.h>…

快速计算delay函数中for循环延时程序占用的时间

首先根据板子上晶振知道时钟频率为12MHz(0.08us0.1us)&#xff0c;板子上长方形金属外壳上有标&#xff08;或者看原理图&#xff09; 根据ISP软件延时计算器得到循环代码 运行_nop_()需要包含库 #include <INTRINS.H> void Delay500ms() //12.000MHz {unsigned c…

c语言延时函数nop,延时函数怎么写delay

1. c语言延时函数delay,怎么算延时 下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而达到延迟…

delay函数的用法及声明

在VC中使用带上头文件#include <windows.h>注意:在VC中Sleep中的第一个英文字符为大写的"S"在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.Sleep函数的一般形式:Sleep(unisgned lon…