×
嵌入式 > 嵌入式开发 > 详情

STM32学习笔记之SysTick

发布时间:2020-08-25 发布时间:
|




#define SYSTICK_COUNTFLAG 16

//初始化延迟函数
void delay_init(void)
{
uint32_t ticks;

ticks = SystemFrequency/1000;
if (ticks > SYSTICK_MAXCOUNT)while (1);


SysTick->LOAD=(ticks & SYSTICK_MAXCOUNT) - 1;
NVIC_SetPriority (SysTick_IRQn, (1<<__nvic_prio_bits>
SysTick->VAL=(0x00);
SysTick->CTRL = (1 << SYSTICK_CLKSOURCE);//选择内核时钟
}

//ms延时
void delay_nms(__IO uint32_t nms)
{
u32 temp;

if(nms == 0)return;
SysTick->VAL = 0x00;//清空计数器

SysTick->CTRL |= (1 << SYSTICK_ENABLE);

while(nms--)
{
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
}


SysTick->CTRL &= ~(1 << SYSTICK_ENABLE);
SysTick->VAL =0X00;//清空计数器
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC18FXX8单片机通用同步异步收发器的接口电路和C源代码