zoukankan      html  css  js  c++  java
  • STM32的精确延时

    /*----------------------------------------------------------
    文件名:systick.c
    文件描写叙述:sysTick 系统滴答时钟1us中断函数库。中断时间可自由配置
    备注:程序默认使用72M时钟,无分频
    -----------------------------------------------------------------*/
    #include "delay.h"
    static __IO u32 TimingDelay;
    /*-----------------------------------------------------------------------
    程序名称:systick Init
    程序描写叙述:启动系统滴答定时器 systick
    输入參数:无
    返回參数:无
    备注: 使用此功能之前须要调用此函数。初始化寄存器等參数
    ----------------------------------------------------------*/
    void SysTick_Init(void)
    {
    	//SystemFrequency /1000 1ms中断一次
    	//SystemFrequency /100000 10us中断一次
    	//SystemFrequency /1000000 1us中断一次
    	if(SysTick_Config(SystemCoreClock /1000000))  //1us
    	{
    		/*Caputure error*/
    		while(1);
    	}
    }
    
    
    /*---------------------------------------------
    程序名称:Delay_us
    程序描写叙述:延时nTime us
    输入參数:nTime
    返回參数:无
    备注:  无
    -----------------------------------------------*/
    void Delay_us(__IO u32 nTime)
    {
    	TimingDelay = nTime;
    	while(TimingDelay != 0);
    }
    
    /*--------------------------------------------------
    程序名称:TimingDelay_Decrement
    程序描写叙述:数字递减到0
    输入參数:无
    返回參数:无
    备注: 须要中断函数SysTick_Handle()中调用
    ---------------------------------------------------------*/
    void TimingDelay_Decrement(void)
    {
    	if(TimingDelay != 0x00)
    	{
    		TimingDelay--;
    	}
    }
    在学习的时候发现,延时是错误的,由于这里的要是要依赖于系统的时钟所以在中断函数中要增加
    <pre name="code" class="cpp">SysTick_Handle()

    
    
    /**
      * @brief  This function handles SysTick Handler.
      * @param  None
      * @retval None
      */
    void SysTick_Handler(void)
    {
    <span style="white-space:pre">	</span>TimingDelay_Decrement();
    }
    
  • 相关阅读:
    【SSRS】入门篇(六) -- 分组和总计
    【SSRS】入门篇(五) -- 设置报表格式
    【SSRS】入门篇(四) -- 向报表添加数据
    【SSRS】入门篇(三) -- 为报表定义数据集
    【SSRS】入门篇(二) -- 建立数据源
    【SSRS】入门篇(一) -- 创建SSRS项目
    【MS SQL】数据库维护计划之数据库备份(二)
    【MS SQL】数据库维护计划之数据库备份(一)
    【MS SQL】查看任务执行进度
    c++ 在客户端的GCC使用
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7239706.html
Copyright © 2011-2022 走看看