实验前提
1、在进行本文步骤前,请先阅读以下博文:
暂无
2、在进行本文步骤前,请先实现以下博文:
暂无
五、基础知识
1、STM8默认使用多少时钟频率?
答:默认使用的是内部16M晶振,并且是8分频,也就是2M的时钟频率。
2、内外部16M晶振有什么区别?
答:stm8内部已有16M晶振,但无法精确定时,如控制步进电机这类需要精确时间的项目,需要使用外部16M晶振。
如果是直流电机这类不需要精确时间的项目,只使用内部16M晶振即可。
六、内部16M晶振的使用步骤
1、初始化内部16M晶振(main.c的main函数中)
[cpp] view plain copy
- //设置内部高速时钟16M为主时钟
- CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
使用“STM8函数库中文参考.exe”工具生成,一条代码即可使用内部16M晶振,简单粗暴。
七、外部16M晶振的使用步骤
1、写一个外部16M晶振初始化的函数(main.c中)
[cpp] view plain copy
- /*******************************************************************************
- * 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函数中)
[cpp] view plain copy
|