梁的笔记 https://bbs.21ic.com/?793936 [收藏] [复制] [RSS] 相信奇迹

日志

STM8S学习笔记之三(STM8 SysClk)

已有 1895 次阅读2013-3-31 07:51 |个人分类:STM8S学习笔记|系统分类:单片机| stm8, 单片机

        STM8S系统时钟设置,对于单片机来说是非常重要的,不同的用处必须应用不同的时钟。。举个例子,做AVR时在高稳定的串口通讯时用的时钟一般是3.6864M,主要是这个算波特率精确。。STM8S同样重要。。


        STM8S时钟源:
        ●1-24MHz高速外部晶体振荡器(HSE)
        ●最大24MHz高速外部时钟信号(HSE user-ext)
        ●16MHz高速内部RC振荡器(HSI)
        ●128KHz低速内部RC(LSI)
        各个时钟源可单独打开或关闭,从而优化功耗。


        对于我这么懒得人一般都是用的内部或者外部晶振。。这个芯片时钟方面很大的一个亮点就是时钟可以自由分频。在降低功耗方面,如果有特殊需求的时候还是考虑STM8L系列或者430的吧,不得不承认术业有专攻。


按照技术手册寄存器功能给寄存器赋值写成一下函数:


        //启动时钟配置
        void SysClkInit(void)
       {
             // CLK_SWR=0xe1; //HSI为主时钟源
               CLK_SWR=0xb4; //HSE为主时钟源
               CLK_CKDIVR=0x00;//CPU时钟0分频,系统时钟0分频
              CLK_CSSR=0x01;//时钟安全监测使能
              CLK_SWCR=0x02;//使能自动时钟切换
       }


         首先设置时钟源,也就是时钟是用内部还是外部,如果对时间精度要求不高,用内部也可以。。然后是时钟分频。。这个分频需要设定系统时钟和CPU时钟,这两个时钟,如果对此有特殊要求就得好好斟酌一下了,而我全部不分频。时钟安全监测还是打开吧,如果用的外部时钟,但是外部时钟突然出现故障的话,单片机会自动启用内部时钟,内部时钟默认为8分频也就是2M。然后时钟自动切换,好像这个有没有都可以,去掉能不能使回头再试。。


         开机初始化,在不调用此函数时CPU时钟默认开启2M,但是调用此函数后,时钟切换为16M,LED闪烁速度明显加快、、


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)