zoukankan      html  css  js  c++  java
  • STM32精确延迟1us和1ms的函数

    STM32精确延迟1us和1ms的函数

    延迟1us:

     1 /*******************************************************************************
     2 * 函 数 名         : delay_us
     3 * 函数功能           : 延时函数,延时us
     4 * 输    入         : i
     5 * 输    出         : 无
     6 *******************************************************************************/
     7 void delay_us(u32 i)
     8 {
     9     u32 temp;
    10     SysTick->LOAD=9*i;         //设置重装数值, 72MHZ时
    11     SysTick->CTRL=0X01;         //使能,减到零是无动作,采用外部时钟源
    12     SysTick->VAL=0;                //清零计数器
    13     do
    14     {
    15         temp=SysTick->CTRL;           //读取当前倒计数值
    16     }
    17     while((temp&0x01)&&(!(temp&(1<<16))));     //等待时间到达
    18     SysTick->CTRL=0;    //关闭计数器
    19     SysTick->VAL=0;        //清空计数器
    20 }

    延迟1ms:

     1 /*******************************************************************************
     2 * 函 数 名         : delay_ms
     3 * 函数功能           : 延时函数,延时ms
     4 * 输    入         : i
     5 * 输    出         : 无
     6 *******************************************************************************/
     7 void delay_ms(u32 i)
     8 {
     9     u32 temp;
    10     SysTick->LOAD=9000*i;      //设置重装数值, 72MHZ时
    11     SysTick->CTRL=0X01;        //使能,减到零是无动作,采用外部时钟源
    12     SysTick->VAL=0;            //清零计数器
    13     do
    14     {
    15         temp=SysTick->CTRL;       //读取当前倒计数值
    16     }
    17     while((temp&0x01)&&(!(temp&(1<<16))));    //等待时间到达
    18     SysTick->CTRL=0;    //关闭计数器
    19     SysTick->VAL=0;        //清空计数器
    20 }

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

  • 相关阅读:
    各类电压标准
    intel-FPGA的片内存储器问题
    基于FPGA的DDS设计(二)
    SpringCloud整合SpringBootActuator
    SpringCloud搭建项目遇到的问题
    第一章 PostGreSQL安装
    Maven环境变量
    JDK环境变量配置
    switch(expression)支持和不支持的数据类型
    @RequestMapping、@ResponseBody和@RequestBody的使用
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/5463751.html
Copyright © 2011-2022 走看看