• STM32 SYSTICK寄存器详解、描述



    ********************************************************************************************************/
    #include "stm32f10x_lib.h"
    /*************************************函数声明**********************************/
    void SysTick_Config(void);//SysTick定时器配置
    void Delay_Ms(u32);//定时时间配置
    void TimingDelay_Decrement(void);//中断定时时间处理函数
    static vu32 TimingDelay;//中断处理函数
    /*******************************************************************************
    * 函数名称 : void SysTick_Config(void)
    * 函数描述:SysTick定时器配置
    * 输入参数:无
    * 输出参数:无
    * 返回值:无
    *******************************************************************************/
    //SysTick设置
    void SysTick_Config(void)
    {
        /* Disable SysTick Counter */
        SysTick_CounterCmd(SysTick_Counter_Disable);
        /*函数原形  void SysTick_CounterCmd(u32 SysTick_Counter)
        功能描述   使能或者失能SysTick计数器
        输入参数   SysTick_Counter:SysTick计数器新状态
                   SysTick_Counter_Disable    失能计数器
                   SysTick_Counter_Enable     使能计数器
                   SysTick_Counter_Clear     清除计数器值为0 */
        /* Disable the SysTick Interrupt */
        SysTick_ITConfig(DISABLE);
        /*函数原形  void SysTick_ITConfig(FunctionalState NewState)
          功能描述    使能或者失能SysTick中断
          输入参数    NewState:SysTick中断的新状态
                      这个参数可以取:ENABLE或者DISABLE*/
        /* Configure HCLK clock as SysTick clock source */
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
        /*函数原形   void SysTick_CLKSourceConfig(u32 SysTick_CLKSource)
          功能描述   设置SysTick时钟源
          输入参数    SysTick_CLKSource:SysTick时钟源
           SysTick_CLKSource_HCLK_Div8   SysTick时钟源为AHB时钟除以8
           SysTick_CLKSource_HCLK        SysTick时钟源为AHB时钟*/
        /* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */
        SysTick_SetReload(9000);
        //系统嘀嗒校准值固定到9000,当系统嘀嗒时钟设定为9 兆赫,产生1ms 时基。
        /*函数原形   void SysTick_SetReload(u32 Reload)
          功能描述    设置SysTick重装载值
          输入参数    Reload:重装载值
                      该参数取值必须在1和0x00FFFFFF之间*/

        /* Enable the SysTick Interrupt */
        SysTick_ITConfig(ENABLE);
        /*函数原形  void SysTick_ITConfig(FunctionalState NewState)
          功能描述    使能或者失能SysTick中断
          输入参数    NewState:SysTick中断的新状态
                      这个参数可以取:ENABLE或者DISABLE*/

    }

    /*******************************************************************************
    * 函数名称 :void Delay_Ms(u32 nTime)
    * 函数描述:定时时间配置
    * 输入参数:u32 nTime
    * 输出参数:无
    * 返回值:无
    *******************************************************************************/
    void Delay_Ms(u32 nTime)
    {
      /* Enable the SysTick Counter */
      SysTick_CounterCmd(SysTick_Counter_Enable);
      /*函数原形   void SysTick_CounterCmd(u32 SysTick_Counter)
       功能描述   使能或者失能SysTick计数器
       输入参数   SysTick_Counter:SysTick计数器新状态
                  参阅Section:SysTick_Counter查阅更多该参数允许取值范围
                  SysTick_Counter_Disable   失能计数器
                  SysTick_Counter_Enable     使能计数器
                  SysTick_Counter_Clear      清除计数器值为0*/
      TimingDelay = nTime;

      while(TimingDelay != 0)
       {
       }
      /*函数原形   void SysTick_CounterCmd(u32 SysTick_Counter)
       功能描述   使能或者失能SysTick计数器
       输入参数   SysTick_Counter:SysTick计数器新状态
                  参阅Section:SysTick_Counter查阅更多该参数允许取值范围
                  SysTick_Counter_Disable    失能计数器
                  SysTick_Counter_Enable     使能计数器
                  SysTick_Counter_Clear      清除计数器值为0*/
      /* Disable SysTick Counter */
      SysTick_CounterCmd(SysTick_Counter_Disable);
      /* Clear SysTick Counter */
      SysTick_CounterCmd(SysTick_Counter_Clear);
      /*函数原形    void SysTick_CounterCmd(u32 SysTick_Counter)
        功能描述    使能或者失能SysTick计数器
        输入参数    SysTick_Counter:SysTick计数器新状态
                    参阅Section:SysTick_Counter查阅更多该参数允许取值范围
       SysTick_Counter_Disable    失能计数器
       SysTick_Counter_Enable     使能计数器
       SysTick_Counter_Clear       清除计数器值为0*/
    }

    /*******************************************************************************
    * 函数名称 :void TimingDelay_Decrement(void)
    * 函数描述:中断定时时间处理函数
    * 输入参数:u32 nTime
    * 输出参数:无
    * 返回值:无
    *******************************************************************************/
    void TimingDelay_Decrement(void)
    {
      if (TimingDelay != 0x00)
      {
        TimingDelay--;
      }
    }

  • 相关阅读:
    ASA5505升级license
    Elasticsearch-URL查询实例解析
    awk和sed
    ftp无法上传问题
    linux使用storcli64查看硬盘信息
    Centos7中kubernetes-1.11.2基于配置亲和与反亲和
    Centos7使用kubeadm部署kubernetes-1.11.2
    内网映射3种方法
    centos6.5使用LVM
    centos7部署openstack-ocata
  • 原文地址:https://www.cnblogs.com/hnrainll/p/1937031.html
Copyright © 2020-2023  润新知