找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

system tick

[复制链接]
跳转到指定楼层
楼主
arm_nuedu 发表于 2017-9-7 10:45:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CLK_SysTickDelay 函数简介@details    Use the SysTick to generate the delay time and the unit is in us     , The SysTick clock source is from HCLK, i.e the same as system core clock.

但CyclesPerUs是在HXT情况下,当core clock 不是hxt,一定会自动更新CyclesPerUs的吧???
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
a_ziliu 发表于 2017-9-12 10:49:56 | 只看该作者
使用者要呼叫 systemcoreclockupdate,去更新CyclesPerUs ,CLK_SysTickDelay 會根據CyclesPerUs 計算
void SystemCoreClockUpdate(void)             /* Get Core Clock Frequency      */
{
    uint32_t u32Freq, u32ClkSrc;
    uint32_t u32HclkDiv;

    /* Update PLL Clock */
    PllClock = CLK_GetPLLClockFreq();

    u32ClkSrc = CLK->CLKSEL0 & CLK_CLKSEL0_HCLK_S_Msk;

    if(u32ClkSrc != CLK_CLKSEL0_HCLK_S_PLL) {
        /* Use the clock sources directly */
        u32Freq = gau32ClkSrcTbl[u32ClkSrc];
    } else {
        /* Use PLL clock */
        u32Freq = PllClock;
    }

    u32HclkDiv = (CLK->CLKDIV & CLK_CLKDIV_HCLK_N_Msk) + 1;

    /* Update System Core Clock */
    SystemCoreClock = u32Freq / u32HclkDiv;

    CyclesPerUs = (SystemCoreClock + 500000) / 1000000;
}
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU