博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STM32 SYSTICK寄存器详解、描述
阅读量:7043 次
发布时间:2019-06-28

本文共 3442 字,大约阅读时间需要 11 分钟。

********************************************************************************************************/
#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--;
  }
}

转载地址:http://fwhal.baihongyu.com/

你可能感兴趣的文章
能源区块链:无法被收买的数字账本,有望破解新能源骗补难题
查看>>
国内的服务机器人还缺点啥?
查看>>
【基础】mysql数据库(key_buffer_size)
查看>>
2-51单片机ESP8266学习-AT指令(开发板测试远程通信详细介绍)
查看>>
Node连接MySQL并封装其增删查改
查看>>
天猫国际首家线下店来了!阿里为什么要开跨境体验店?
查看>>
我国抢占“第二次量子革命”全球制高点
查看>>
Living the Stream: Live-streaming in China
查看>>
CommonJS/AMD/CMD/UMD概念初探
查看>>
字符串拷贝记得strcpy
查看>>
[微信小程序]通过计算其他view的高度,动态给定scroll-view的高度
查看>>
旋转图像
查看>>
中国电信天翼U盾产品荣获第三届网络安全国家标准优秀应用案例二等奖
查看>>
php结合数据库演示商品多图片上传
查看>>
网上找到的题目
查看>>
支持全球游戏加速 飞鱼星发烧级玩家路由G7上市
查看>>
Win32环境下代码注入与API钩子的实现
查看>>
VR开年大事件!HYPEREAL开源激光定位技术
查看>>
mac上虚拟机安装旧版本的macosx 10.8
查看>>
用H5中的Canvas等技术制作海报
查看>>