本篇博文最后修改时间:2016年08月30日,10:24。
一、简介
本文介绍STM8S系列如何分别实现内外部的16M晶振的使用。
二、实验平台
编译软件:IAR for STM8 1.42.2
硬件平台:stm8s003f3p6开发板
仿真器:ST-LINK
库函数版本:STM8Sx_AN3298_FW_V4.0.0
三、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
四、 实验前提
1、在进行本文步骤前,请先 阅读 以下博文:
暂无
2、在进行本文步骤前,请先 实现以下博文:
暂无
五、基础知识
1、STM8默认使用多少时钟频率?
答:默认使用的是内部16M晶振,并且是8分频,也就是2M的时钟频率。
2、内外部16M晶振有什么区别?
答:stm8内部已有16M晶振,但无法精确定时,如控制步进电机这类需要精确时间的项目,需要使用外部16M晶振。
如果是直流电机这类不需要精确时间的项目,只使用内部16M晶振即可。
六、内部16M晶振的使用步骤
1、初始化内部16M晶振(main.c的main函数中)
//设置内部高速时钟16M为主时钟CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
使用“STM8函数库中文参考.exe”工具生成,一条代码即可使用内部16M晶振,简单粗暴。
七、外部16M晶振的使用步骤
1、写一个外部16M晶振初始化的函数(main.c中)
/*******************************************************************************
* Function Name : CLK_Init
* Description : 时钟初始化
* Input : None
* Return : None
* Author : 甜甜的大香瓜
* date : 2016.05.09
*******************************************************************************/
static void CLK_Init(void)
{ CLK_HSECmd(ENABLE); //外部时钟开 CLK_LSICmd(ENABLE); //内部低频RC开 CLK_HSICmd(ENABLE); //内部高频RC开 while(SET != CLK_GetFlagStatus(CLK_FLAG_HSERDY)); //等待外部晶振起振 CLK_ClockSwitchCmd(ENABLE); //切换使能 CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE);//切换到外部晶振 CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); //1分频
}
2、初始化外部16M晶振(main.c的main函数中)
//使用外部16M晶振CLK_Init();