打印
[牛人杂谈]

M058S的时钟配置顺序

[复制链接]
67|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
根据手册的时钟顺序,应该是先配置时钟源,是选择内部RC还是选择外部晶振,或者都配置上。

另外就是PLL,使能了PLL的同时要选择PLL从谁那获取PLL的时钟源。
上面对应的就是使能相关的时钟源。
然后就是这个,注意到有个HCLK,CPUCLK,PCLK,这三个都是从同一个地方分出来,其实是同一个时钟到了三个不同的目的地。

其实他们是同一个时钟信号。所以库函数中定义获取这三个时钟的是同一个操作
uint32_t CLK_GetHCLKFreq(void)
{
    SystemCoreClockUpdate();
    return SystemCoreClock;
}

/**
  * [url=home.php?mod=space&uid=247401]@brief[/url]      Get PCLK frequency
  * @param      None
  * [url=home.php?mod=space&uid=266161]@return[/url]     PCLK frequency
  * [url=home.php?mod=space&uid=1543424]@Details[/url]    This function get PCLK frequency. The frequency unit is Hz.
  */
uint32_t CLK_GetPCLKFreq(void)
{
    SystemCoreClockUpdate();
    return SystemCoreClock;
}


/**
  * @brief      Get CPU frequency
  * @param      None
  * @return     CPU frequency
  * @details    This function get CPU frequency. The frequency unit is Hz.
  */
uint32_t CLK_GetCPUFreq(void)
{
    SystemCoreClockUpdate();
    return SystemCoreClock;
}
明白了这个就知道如何配置HCLK了,其实就是选择HCLK的时钟源与分频
CLK_SetHCLK(CLK_CLKSEL0_HCLK_S_HIRC,CLK_CLKDIV_HCLK(1));
最后就是各个模块的时钟使能与配置了。
比如串口0,串口0有三个可选的时钟源,HIRC,HXT,PLL
 CLK_EnableModuleClock(UART0_MODULE);
        CLK_SetModuleClock(UART0_MODULE,CLK_CLKSEL1_UART_S_HXT,CLK_CLKDIV_UART(1));



使用特权

评论回复
沙发
yiyigirl2014|  楼主 | 2025-1-8 13:25 | 只看该作者
配置时钟时候你们都是怎么下手的呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

218

主题

3566

帖子

10

粉丝