打印
[应用相关]

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

[复制链接]
651|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一代掌门|  楼主 | 2017-2-24 12:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实验前提
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


  • //使用外部16M晶振  
  • CLK_Init();  


发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

191

帖子

4

粉丝