微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > SysTick_Config里面一段代码看不懂求一句一句解释下~~~谢谢

SysTick_Config里面一段代码看不懂求一句一句解释下~~~谢谢

时间:10-02 整理:3721RD 点击:

static __INLINE uint32_t SysTick_Config(uint32_t ticks)
{
if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);           
  SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;      
  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  
  SysTick->VAL   = 0;                                       
  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
                   SysTick_CTRL_TICKINT_Msk   |
                   SysTick_CTRL_ENABLE_Msk;                   //尤其是对寄存器操作这句
  return (0);
}

static __INLINE uint32_t SysTick_Config(uint32_t ticks) {  

  if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);   /* 重装值超过了24位,是不可能的。返回失败值0 */                                          

  SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* 设置重装载寄存器 */  

NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  /* 设置优先级 for Cortex-M0 系统中断 */

  SysTick->VAL   = 0;           /* 装载计数器值(当前计数值清0) */   

SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |

  SysTick_CTRL_TICKINT_Msk| SysTick_CTRL_ENABLE_Msk;     /* 使能SysTick中断请求和Systick定时*/  

return (0);        /* 成功,返回0 */ }  

     额~自己找到解答了、、、、

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top