【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晶振的使用步骤
1、写一个外部16M晶振初始化的函数(main.c中)
2、初始化外部16M晶振(main.c的main函数中)
一、简介
本文介绍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();
相关文章推荐
- 167. Two Sum II - Input array is sorted
- CSS 边框(20160821-0021)
- Universal-Image-Loader源码阅读(31)-FadeInBitmapDisplayer
- java 字符串和二进制相互转换
- swift 关于 typealias
- metasploit download
- idea配置测试集
- linux rm命令自定义回收站功能
- 洛谷 P1088 火星人
- 配置自己风格的Clang-Format-Xcode
- npm
- jrebel配置
- 按用户分组按时间排序存储过程
- 全面了解#pragma once与 #ifndef的区别
- 二十四、oracle pl/sql 变量
- 有人向我反映了一个bug
- 增加 修改,装载状态(父品类)
- maven中央仓库地址
- 寻觅
- 五年 Android 开发,让我 “刻骨铭心” 的那些坑