当前位置:首页 > 单片机 > 单片机
[导读]SYSTICK寄存器初始化void SysTick_Configuration(void){if (SysTick_Config(SystemCoreClock / 100)){while (1);}NVIC_SetPriority(SysTick_IRQn, 0x0);}SysTick_Config默认时钟为SysTick_CLKSource_HCLK,所以在这之

SYSTICK寄存器初始化
void SysTick_Configuration(void)
{

if (SysTick_Config(SystemCoreClock / 100))
{

while (1);
}

NVIC_SetPriority(SysTick_IRQn, 0x0);
}
SysTick_Config默认时钟为SysTick_CLKSource_HCLK,所以在这之前使用SysTick_CLKSourceConfig()选择系统时钟不会改变systick的时钟
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);
}

systick中断服务程序
void SysTick_Handler(void)
{
systime ++;
}
延时程序
void delay_ms(unsigned int ms)
{
unsigned int temp;
temp = systime;
while((systime - temp) < ms);
}


void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)在misc.c文件中定义
static __INLINE uint32_t SysTick_Config(uint32_t ticks)在core_cm3.h中定义

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭