延迟1us:

void delay_us(u32 i)
{u32 temp;SysTick->LOAD=9*i;         //设置重装数值, 72MHZ时SysTick->CTRL=0X01;         //使能,减到零是无动作,采用外部时钟源SysTick->VAL=0;                //清零计数器do{temp=SysTick->CTRL;           //读取当前倒计数值}while((temp&0x01)&&(!(temp&(1<<16))));     //等待时间到达SysTick->CTRL=0;    //关闭计数器SysTick->VAL=0;        //清空计数器
}

延迟1ms:

void delay_ms(u32 i)
{u32 temp;SysTick->LOAD=9000*i;      //设置重装数值, 72MHZ时SysTick->CTRL=0X01;        //使能,减到零是无动作,采用外部时钟源SysTick->VAL=0;            //清零计数器do{temp=SysTick->CTRL;       //读取当前倒计数值}while((temp&0x01)&&(!(temp&(1<<16))));    //等待时间到达SysTick->CTRL=0;    //关闭计数器SysTick->VAL=0;        //清空计数器
}

注意:以上两函数中间的参数u32 i不能超过1800,举例,想定时一分钟,可以通过for循环让delay_ms(1000)走60次,而不能使用delay_ms(60000),不然程序就出错了。

转载自:https://www.cnblogs.com/jiwangbujiu/p/5463751.html

STM32精确延迟1us和1ms的函数相关推荐

  1. c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS

    最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...

  2. STM32中关于串口通信的printf()函数重定向问题

    在STM32串口通信程序中使用printf()函数发送数据非常方便,但是需要先进行简单的配置,下面介绍两种配置方法. 方法一.对工程属性进行配置 第1步:在main.c中包含"stdio.h ...

  3. stm32延时us寄存器_自己写一个STM32 HAL库的US微秒延时函数

    当本菜鸟开始接触STM32的时候还是看了原子哥的寄存器教程才跳坑的. 现在ST已经把HAL库推向了主流,但是令我不解的是,HAL那么强大,居然没有一个微秒级别的延时函数?! 黑人问号脸. 好了,废话不 ...

  4. STM32 定时器的简单应用 1ms中断代码

    引言:利用定时器TIM8产生1ms中断,每中断一次,全局变量+1,计数到10即10ms,使得输出引脚翻转一次.芯片采用STM32F103VCT6,系统输入时钟12MHz,完成代码并用示波器输出. 根据 ...

  5. 新唐单片机如何生成精确延迟

    最近在搞新唐单片机,所以记录下这部分内容. 之前的相关文章 呵,你会51单片机的精确延时吗? 假如使用者想要产生精确的延迟时间,建议使用 __nop() 函数来组合达成.__nop() 函数能够产生 ...

  6. 004:STM32启动文件详解及SystemInit函数分析(转)

    1 ;先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_0000 2 ;然后在RAM中分配变量使用的堆 3 ;然后在CODE区(flash)分配中断向量表,flash的起始地址为0x080 ...

  7. STM32启动文件详解及SystemInit函数分析

    1 ;先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_0000 2 ;然后在RAM中分配变量使用的堆 3 ;然后在CODE区(flash)分配中断向量表,flash的起始地址为0x080 ...

  8. 呼吸灯中1us、1ms、1s计时器加1和翻转条件

    //1ms计数器 always@(posedge sys_clk or negedge sys_rest_n) if (!sys_rest_n) cnt_1ms <= 10'b0; else i ...

  9. STM32—时钟树(结合系统时钟函数理解)

    时钟树的概念: 我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处.心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来 ...

  10. c语言随机数循环延迟,C语言生成随机数的函数、延时函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面C语言代码使用了生成随机数的函数.延时函数.请大家仔细观察其显示效果. 从以下代码,我们可以得出一个重要的结论:当上述两类函数被放入循环时,应作出一定 ...

最新文章

  1. frame,iframe,frameset之间的关系与区别
  2. 代码段间转移控制时的特权级检查(JMP/CALL)——《x86汇编语言:从实模式到保护模式》读书笔记28
  3. svn 命令行查看history及比较不同版本
  4. 剑指offer-面试题13.在O(1)时间删除链表节点
  5. ffmpeg和SDL学习笔记
  6. element vue 动态单选_SpringBoot+Vue(MyBatis + Shiro + Jwt + Druid + Redis + ElementUI )快速开发框架...
  7. Oracle--plsql之控制结构
  8. 什么叫侧面指纹识别_哪种指纹识别方式好?侧边指纹识别可能会成为主流
  9. 如何在M1上运行较早的非本机Intel x86应用
  10. 【使用教程】面向回家编程-12306智能刷票,订票
  11. 按键精灵html库,【源码分享】雷电模拟器 - 按键精灵PC - 命令库
  12. Tiny6410 的NandFlash(K9GAG08U0E)
  13. 查询vue版本、脚手架版本
  14. NOIP2018普及组初赛题解
  15. npm引入小程序官方WeUI组件库weui-miniprogram
  16. 物权法全文内容有哪些呢-广告外链_有哪些网络推广免费平台
  17. 《汇编语言》第 8章 -数据处理的两个基本问题 检测点,实验7,总结
  18. 飞瞳引擎™AI集装箱识别检测云服务,全球两千企业用户投入使用,集装箱信息识别率99.98%以上高泛化性,集装箱信息识别云服务免费
  19. EBS功能_PO匹配审批层总结
  20. 该不该抛弃那匹马呢?

热门文章

  1. 站长说说之SEO流量翻倍增长的秘密
  2. 百度移动搜索优化指南2.0
  3. 台式计算机怎么安装无线网卡,台式机装无线网卡,详细教您台式机怎么使用无线网卡上网...
  4. excel教程自学网_收藏!这37个自学网站,一年让你省下十几万
  5. 《世界历史》—史前时期的分期
  6. 学校机房计算机类型,学校计算机机房的管理和维护建议原稿(样例3)
  7. HTTP 405错误解决方法
  8. 苹果开发人员账号注冊流程
  9. 干眼能从事计算机工作吗,上班族长时间面对电脑须谨慎干眼症
  10. 学生信息管理系统代码