关闭

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

3823人阅读 评论(0) 收藏 举报
分类:

本篇博文最后修改时间: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();





1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:427087次
    • 积分:5855
    • 等级:
    • 排名:第4602名
    • 原创:145篇
    • 转载:0篇
    • 译文:0篇
    • 评论:215条
    最新评论