关于STM8的时钟源配置
来源:互联网 发布:sqlserver 变量 编辑:程序博客网 时间:2024/05/25 13:33
关于STM8的时钟源配置
STM8的主时钟是由内部时钟分频后得到或者直接是外部晶振产生(或外部直接输入)的时钟。
CPU时钟分频器分频主时钟后供CPU使用
外设(如定时器,UART)使用的不是CPU相同的时钟,而是主时钟,当然、当CPU分频器分频因子是1时CPU时钟和外设输入的时钟频率是相等的。
STM8复位时默认使用内部高速RC时钟,如果需要切换到外部晶振,那就需要用软件实现切换,这一点与AVR不同,AVR的时钟源选择是通过熔丝位的,在程序中是无法切换的,其优点是配置简单,无需固件切换,但误配置熔丝位会锁死芯片,而STM8的软件配置方式有效的避免了时钟源选择导致的锁芯片现象。
下面是切换时钟源到外部晶振的配置代码供参考:
//使用库
void CLK_Configuration(void)
{
CLK_DeInit();
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);//时钟分频设置系统时钟12M不分频
CLK_HSECmd(ENABLE);//外部时钟使能
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, DISABLE);
CLK_ClockSwitchCmd(ENABLE);
}
//不使用库
void CLK_Configuration(void)
{
CLK->CKDIVR=0;//不分频
CLK->ECKR = 0x01; //启动外部高速晶体振荡器, 允许外部高速振荡器工作
while((CLK->ECKR & 0x02) == 0x00); // 等待外部高速振荡器准备好
CLK->SWCR = CLK->SWCR | 0x02;
CLK->SWR = 0xB4; // 选择芯片外部的高速振荡器为主时钟
while((CLK->SWCR & 0x08) == 0); // 等待切换成功
CLK->SWCR = CLK->SWCR & 0xFD; // 清除切换标志
- 关于STM8的时钟源配置
- stm8时钟源选择配置
- STM8时钟配置
- STM8 时钟源切换
- 【单片机】[STM8] - 外部时钟 + 内部时钟 的切换
- IAR for STM8 为何可以不配置时钟?
- 关于STM8的FWLIB库
- STM8时钟系统详解
- stm8时钟切换
- stm8 rtc时钟
- STM8 设置系统时钟
- 关于使用stm8单片机的“外部计数”TIMx_ETR测脉冲的软件配置问题!
- 关于stm8定时器2的中断
- 关于TMS320F28335的eCAN模块时钟的配置
- AM335x关于LCD屏幕的时钟PLL配置
- 关于时钟的讨论
- 关于STM32的时钟
- S3C2440的时钟配置
- 畅通工程汇总
- host元素的属性autoDeploy和reloadable的区别
- HttpSession
- Ubuntu gedit 打开txt乱码问题
- 安装qt-embedded-linux-opensource-src-4.4.0
- 关于STM8的时钟源配置
- android设备休眠
- 奇异值分解及其应用(转自http://leftnoteasy.cnblogs.com)
- Fedora窗口最大最小化
- linux下如何添加一个用户并且让用户获得root权限
- ios初学SQLite3(创建、插入、查询、更新数据库和表)
- SQL中where与having的区别
- VC在对话框中画图
- Rails学习笔记(一)