• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Systick定时器寄存器设置问题

有花堪折 2019-09-26 浏览量:698

Systick定时器我用内部时钟作led闪烁,怎么时间不对,有大神解答下么

#include"delay1.h"
static u8 fac_us=0;
static u16 fac_ms=0;
void delay1_init()
{
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
        fac_us=SystemCoreClock/1000000;
        fac_ms=(u16)fac_us有*1000;
}
void delay1_us(u32 nus)
{
        u32 temp;
        SysTick->LOAD=nus*fac_us;
        SysTick->VAL=0x00;
        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
        do{
                temp=SysTick->CTRL;
        }while((temp&0x01)&&!(temp&(1<<16)));
        SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
        SysTick->VAL=0x00;
}
void delay1_ms(u16 nms)
{
        u32 temp;
        SysTick->LOAD=nms*fac_ms;
        SysTick->VAL=0x00;
        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
        do{
                temp=SysTick->CTRL;
        }while((temp&0x01)&&!(temp&(1<<16)));
        SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
        SysTick->VAL=0x00;
       
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:0

相关问题

问题达人换一批

Systick定时器寄存器设置问题