您的位置:首页 > 其它

【STM8S】STM8S之内外部16M晶振

2016-08-30 09:51 239 查看
本篇博文最后修改时间: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

香瓜BLE之Android群:541462902

香瓜单片机之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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: