单片机成长之路(stm8基础篇)- 025 stm8 时钟切换
stm8 时钟切换;
1 /************************************ 时钟设置 ************************************/ 2 // 时钟 0:内部高速 1:内部低速 2:外部 3:保留 3 void set_System_clock(char clock_mode){ 4 // set CPUDIV 5 CLK_CKDIVR &= 0xf8;CLK_CKDIVR |= 0x00; // 设置 CPUDIV 不分频 6 switch(clock_mode){ 7 case 0:{ // set HSI 8 CLK_CKDIVR &= 0xe7;CLK_CKDIVR |= 0x00; // 设置 HSIDIV 不分频 9 }break; 10 case 1:{ // set LSI 11 CLK_ICKR |= MASK_CLK_ICKR_LSIEN; /* 打开内部低速时钟源 */ 12 while(CLK_ICKR_LSIRDY == 0); /* 等待时钟源信号稳定,稳定后CLK_ICKR_LSIRDY置位 */ 13 CLK_SWCR = MASK_CLK_SWCR_SWEN; /* 转换使能,采用自动转换方式 */ 14 CLK_SWR = 0xD2; /* 选择内部低速时钟源 */ 15 while(!(CLK_SWCR & 0x08)); /* 切换完成后,SWIF置位 */ 16 }break; 17 case 2:{ // set HSE 18 CLK_ECKR |= MASK_CLK_ECKR_HSEEN; /* 打开外部高速时钟源 */ 19 while(CLK_ECKR_HSERDY == 0); /* 等待时钟源信号稳定,稳定后CLK_ECKR_HSERDY置位 */ 20 CLK_SWCR = MASK_CLK_SWCR_SWEN; /* 转换使能,采用自动转换方式 */ 21 CLK_SWR = 0xB4; /* 选择外部高速时钟源 */ 22 while(!(CLK_SWCR & 0x08)); /* 切换完成后,SWIF置位 */ 23 }break; 24 case 3:{ // 保留 25 ; 26 }break; 27 default:break; 28 } 29 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2017-10-07 centos7 安装遇到的问题
2016-10-07 Arduino 报错总结