查看: 1392|回复: 0

[原创] 重玩LPC1768——时钟与Systick

[复制链接]
  • TA的每日心情
    开心
    前天 15:27
  • 签到天数: 1336 天

    [LV.10]以坛为家III

    88

    主题

    4293

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9054
    最后登录
    2024-5-2
    发表于 2020-8-29 15:00:02 | 显示全部楼层 |阅读模式
    重玩LPC1768——时钟与Systick


    LPC1768芯片最高主频为100MHz,开发板使用的是12MHz的晶振为Main OSC,使用32768Hz的低频时钟为RTC时钟。
    考虑到后续要使用USB外设,所以本次DIY将LPC1768的主频通过PLL0设置为96MHz(其实USB外设可以使用PLL1配置到指定的48MHz)。当然,另外的一个原因是在示例代码中,官方提供的主时钟配置例程也是配置到了96MHz,索性就不再做修改了。
    时钟配置的大致过程:
    • 将时钟源选择Main OSC,并等待其稳定
    • 将Main OSC通过PLL0倍频到384MHz(12*2*(15+1)/1)
    • 再将倍频后的Fcoo时钟4分频到96MHz
    • 最后得到我们使用的主频96MHz

    其实代码就这么一句,其内容官方已经将其写好,注释详细且有示例,读者可以深入阅读。
    1. Chip_SetupXtalClocking();  //配置主频96MHz
    复制代码
    在配置成功主频后,我再调用systick的配置函数,即可获取1000Hz的系统时基:

    1. SysTick_Config(SystemCoreClock / 1000);  //时基1000Hz
    复制代码
    最后附上main.c全部的代码:

    1. /**
    2. ******************************************************************************
    3. * @file    main.c
    4. * @author  jobs
    5. * @version v0.00
    6. * @date    2020-08-23
    7. * @brief   
    8. * @note   
    9. *
    10. ******************************************************************************
    11. */

    12. #include <stdio.h>
    13. #include <stdint.h>
    14. #include "main.h"
    15. #include "chip.h"

    16. const uint32_t OscRateIn = 12000000;
    17. const uint32_t RTCOscRateIn = 32768;

    18. volatile uint32_t time_line_ms = 0;

    19. void main(void)
    20. {
    21.   Chip_SetupXtalClocking();
    22.   SystemCoreClockUpdate();
    23.   SysTick_Config(SystemCoreClock / 1000);
    24.   while(1)
    25.   {
    26.   }
    27. }


    28. void SysTick_Handler(void)
    29. {
    30.   time_line_ms++;
    31. }

    32. /******************************** END OF FILE *********************************/
    复制代码




    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-3 07:31 , Processed in 0.112593 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表