STM8S207时钟管理库函数

news2024/11/26 15:47:06

STM8S207时钟树

 

//STM8S207时钟管理库函数
//CLK_DeInit();//将相关的时钟寄存器恢复到默认值
//CLK_HSECmd(ENABLE);//启用外部高速振荡器HSE
//CLK_HSECmd(DISABLE);//关闭外部高速振荡器HSE
//CLK_HSICmd(ENABLE);//启用内部高速振荡器HSI
//CLK_HSICmd(DISABLE)//关闭内部高速振荡器HSI
//CLK_LSICmd(ENABLE);//启用内部低速振荡器LSI
//CLK_LSICmd(DISABLE);//关闭内部低速振荡器LSI
//CLK_CCOCmd(ENABLE);//启用CCO引脚输出时钟功能
//CLK_CCOCmd(DISABLE);//关闭CCO引脚输出时钟功能
//CLK_ClockSwitchCmd(ENABLE);//启用时钟切换
//CLK_ClockSwitchCmd(DISABLE);//关闭时钟切换
//CLK_FastHaltWakeUpCmd(ENABLE);//启用快速唤醒
//CLK_FastHaltWakeUpCmd(DISABLE);//关闭快速唤醒
//CLK_SlowActiveHaltWakeUpCmd(DISABLE);//启用活跃停机模式下的电压调节器
//CLK_SlowActiveHaltWakeUpCmd(ENABLE);//关闭活跃停机模式下的电压调节器
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_I2C, ENABLE);//启用I2C外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_SPI, ENABLE);//启用SPI外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART1, ENABLE);//启用UART1外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART2, ENABLE);//启用UART2外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_UART3, ENABLE);//启用UART3外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER1, ENABLE);//启用TIMER1外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER2, ENABLE);//启用TIMER2外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER3, ENABLE);//启用TIMER3外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, ENABLE);//启用TIMER4外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER5, ENABLE);//启用TIMER5外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER6, ENABLE);//启用TIMER6外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_AWU, ENABLE);//启用AWU外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC, ENABLE);//启用ADC外设时钟
//CLK_PeripheralClockConfig(CLK_PERIPHERAL_CAN, ENABLE);//启用CAN外设时钟

/*
ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL, CLK_SOURCE_HSE, ENABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
//手动切换到HSE时钟,切换到HSE时钟源后,关闭旧的时钟源
if (clk_return_status == SUCCESS)  //SUCCESS or ERROR
{};

ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, ENABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
//自动切换到HSE时钟,切换到HSE时钟源后,关闭旧的时钟源
if (clk_return_status == SUCCESS)  //SUCCESS or ERROR
{};
*/

/*
ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL, CLK_SOURCE_HSI, ENABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
//手动切换到HSI时钟,切换到HSI时钟源后,关闭旧的时钟源
if (clk_return_status == SUCCESS)  //SUCCESS or ERROR
{};

ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI, ENABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
//自动切换到HSI时钟,切换到HSI时钟源后,关闭旧的时钟源
if (clk_return_status == SUCCESS)  //SUCCESS or ERROR
{};
*/

/*
ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL, CLK_SOURCE_LSI, ENABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
//手动切换到HLSI时钟,切换到LSI时钟源后,关闭旧的时钟源
if (clk_return_status == SUCCESS)  //SUCCESS or ERROR
{};

ErrorStatus clk_return_status;
clk_return_status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_LSI, ENABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
//自动切换到HLSI时钟,切换到LSI时钟源后,关闭旧的时钟源
if (clk_return_status == SUCCESS)  //SUCCESS or ERROR
{};
*/

//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//设置HSI分频器为1分频
//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);//设置HSI分频器为2分频
//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);//设置HSI分频器为4分频
//CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);//设置HSI分频器为8分频

//CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);//HSI内部高速振荡器1分频
//CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV2);//HSI内部高速振荡器2分频
//CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV4);//HSI内部高速振荡器4分频
//CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV8);//HSI内部高速振荡器8分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);//CPU时钟1分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV2);//CPU时钟2分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV4);//CPU时钟4分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV8);//CPU时钟8分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV16);//CPU时钟16分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV32);//CPU时钟32分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV64);//CPU时钟64分频
//CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV128);//CPU时钟128分频

//CLK_SWIMConfig(CLK_SWIMDIVIDER_2);//SWIM时钟2分频
//CLK_SWIMConfig(CLK_SWIMDIVIDER_OTHER);//SWIM时钟不分频

//CLK_ITConfig(CLK_IT_CSSD, ENABLE);//启用时钟安全系统检测中断
//CLK_ITConfig(CLK_IT_SWIF, ENABLE);//启用时钟切换中断

//CLK_CANConfig(CLK_CANDIVIDER_1);//配置CAN时钟频率为HSE/1
//CLK_CANConfig(CLK_CANDIVIDER_2);//配置CAN时钟频率为HSE/2
//CLK_CANConfig(CLK_CANDIVIDER_3);//配置CAN时钟频率为HSE/3
//CLK_CANConfig(CLK_CANDIVIDER_4);//配置CAN时钟频率为HSE/4
//CLK_CANConfig(CLK_CANDIVIDER_5);//配置CAN时钟频率为HSE/5
//CLK_CANConfig(CLK_CANDIVIDER_6);//配置CAN时钟频率为HSE/6
//CLK_CANConfig(CLK_CANDIVIDER_7);//配置CAN时钟频率为HSE/7
//CLK_CANConfig(CLK_CANDIVIDER_8);//配置CAN时钟频率为HSE/8

//CLK_ClockSecuritySystemEnable();//启用时钟安全系统,一旦启用则不能关闭,直到下次复位
//CLK_SYSCLKEmergencyClear();//清除时钟忙标志

//CLK_AdjustHSICalibrationValue(CLK_HSITRIMVALUE_0);//修正HSI内部高速振荡器频率
//CLK_AdjustHSICalibrationValue(CLK_HSITRIMVALUE_7);//修正HSI内部高速振荡器频率

/*
u32 u32_clk_freq;
u32_clk_freq = CLK_GetClockFreq();//获取系统时钟频率
*/

/*
clk_source = CLK_GetSYSCLKSource();
//获取系统时钟源,返回值为CLK_SOURCE_HSI或CLK_SOURCE_LSI或CLK_SOURCE_HSE
if (clk_source == CLK_SOURCE_HSI)
{
}
if (clk_source == CLK_SOURCE_LSI)
{
}
if (clk_source == CLK_SOURCE_HSE)
{
}
*/

/*
FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_HSERDY);//读HSE外部高速振荡器就绪标志位
if (flags_tatus == SET)  //SET or RESET
{};

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_HSIRDY);//读HSI内部高速振荡器就绪标志位
if (flags_tatus == SET)  //SET or RESET
{};

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_LSIRDY);//读LSI内部低速振荡器就绪标志位
if (flags_tatus == SET)  //SET or RESET
{};

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_SWIF);//读时钟切换中断标志
if (flags_tatus == SET)  //SET or RESET
{};

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_SWBSY);//读时钟忙标志
if (flags_tatus == SET)  //SET or RESET
{};

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_CSSD);//读时钟安全系统检测标志
if (flags_tatus == SET)  //SET or RESET
{};

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_AUX);//读辅助振荡器开关状态位
if (flags_tatus == SET)  //SET or RESET
{};

//需要设置"选项字OPT2",将PD0映射为CLK_CCO
//CLK_CCOConfig(CLK_OUTPUT_HSE);//设置HSE时钟通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_HSIRC);//设置HSI时钟通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_LSI);//设置LSI时钟通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_HSI);//设置HSI时钟分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_CPU);//设置CPU时钟1分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_CPUDIV2);//设置CPU时钟2分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_CPUDIV4);//设置CPU时钟4分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_CPUDIV8);//设置CPU时钟8分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_CPUDIV16);//设置CPU时钟16分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_CPUDIV32);//设置CPU时钟32分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_CPUDIV64);//设置CPU时钟64分频值通过CCO引脚输出
//CLK_CCOConfig(CLK_OUTPUT_MASTER);//设置MASTER时钟通过CCO引脚输出

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_CCOBSY);//读CCO引脚时钟输出忙标志
if (flags_tatus == SET)  //SET or RESET
{};

FlagStatus flags_tatus;
flags_tatus = CLK_GetFlagStatus(CLK_FLAG_CCORDY);//读CCO引脚时钟输出就绪标志
if (flags_tatus == SET)  //SET or RESET
{};
*/

/*
ITStatus flags_tatus;
flags_tatus = CLK_GetITStatus(CLK_IT_CSSD);//读时钟安全系统检测中断标志
if (flags_tatus == SET)  //SET or RESET
{
  CLK_ClearITPendingBit(CLK_IT_CSSD);//清除时钟安全系统检测中断标志
}

ITStatus flags_tatus;
flags_tatus = CLK_GetITStatus(CLK_IT_SWIF);//读时钟切换中断标志
if (flags_tatus == SET)  //SET or RESET
{
  CLK_ClearITPendingBit(CLK_IT_SWIF);//清除时钟切换中断标志
}
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/180971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud Sentinel(限流、熔断、降级)、SpringBoot整合Sentinel、Sentinel的使用-60

一:Sentinel简介 Sentinel就是分布式系统的流量防卫兵 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 1.1 官方文档 官方文档&#…

哪里可以找到电子版的大学课本?

第一个:中国高校课件下载网站网址:http://download.cucdc.com/这是一个可以下载各个大学课本的网站,基本上所有的大学课本都能在这里找到PDF版本。可以按学校学科搜。 第二个:淘链客网址:https://www.toplinks.cc/s/PD…

MySQL_存储引擎

存储引擎 MySQL体系结构 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口&…

读书:《如何想到又做到》

全书最有用的内容是下面这张图:持久改变的SCIENCE模型。 作者为了方便读者记忆,找了7个单词,首字母拼在一起就是SCIENCE,对应着7种武器: S 阶梯(Stepladders):小而又小的迭代 C 社群…

高性能零售IT系统的建设09-Spring Boot2.4.2+Spring Cloud+Nacos+Feign+Hystrix的生产级应用实例

开篇 通过前面8篇我们已经感受到了我接手时这个项目有多“烂”,当然喽如果只是一味的承认它的烂这不是积极乐观主义。 我在接触管理早期听过一次四大厂的报告,报告中说到:从来没有屎一样的团队只有屎一样的“带队”。 这也符合我们一直接受的…

SpringMVC @RequestHeader @CookieValue 处理获取请求参数的乱码问题

SpringMVC RequestHeader CookieValue 处理获取请求参数的乱码问题RequestHeaderCookieValue什么是cookie通过POJO获取请求参数通过CharacterEncodingFilter处理获取请求参数的乱码问题get请求的乱码post请求乱码处理获取请求参数的乱码问题)RequestHeader 1.RequestHeader是将…

实时计算业务介绍实时日志分析

4.1 实时计算业务介绍 学习目标 目标 了解实时计算的业务需求知道实时计算的作用应用 无 4.1.1 实时计算业务需求 实时(在线)计算: 解决用户冷启动问题实时计算能够根据用户的点击实时反馈,快速跟踪用户的喜好 4.1.2 实时计算…

编译与优化

第10章 前端编译与优化 10.2.1 Javac的源码与调试 从Javac代码的总体结构来看,编译过程大致可以分为1个准备过程和3个处理过程,它们分别如下 所示。 1)准备过程:初始化插入式注解处理器。 2)解析与填充符号表过程&…

【C++】异常

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉C语言传统…

精神财富 物质财富

今天聊到别的家庭每天都制定好计划的,补习班 party 冬令营什么之类的,这个是我们达不到的。有人提前开启了认知,赚到了人生的第一桶金。懂得付出,和执行输出差了好多数量级。 今天看了杂技表演,男人和女人配合的好好 …

C++ 初阶 :stackqueue

文章目录1 stack的介绍2 stack的模拟实现3 queue的介绍4 queue的模拟实现5 priority_queue(优先级队列)介绍6 priority_queue 模拟实现7 仿函数8 deque的简单介绍8.1 deque与vector list的比较8.2 为什么选择deque作为stack和queue的底层默认容器1 stack的介绍 ①stack是一种容…

Springboot校园食堂外卖点餐系统357

目 录 1 概述 1 1.1课题背景及意义 1 1.2 国内外研究现状 1 1.3 本课题主要工作 2 2 系统开发环境 3 2.1 java简介 3 2.2 Mysql数据库 3 2.3 B/S结构 4 2.4 JSP技术介绍 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2操作…

javaEE 初阶 — Socket 套接字与 UDP 数据报套接字编程

文章目录1. Socket 套接字1.1 有连接与无连接1.2 可靠与不可靠传输1.3 面向字节流与面向数据报1.4 全双工与半双工2. UDP数据报套接字编程2.1 DatagramSocket API2.2 DatagramPacket API2.3 InetSocketAddress API3. UDP 版本的客户端服务器程序3.1 服务器实现3.2 客户端实现3.…

【JUC并发编程】Java内存模型——JMM

【JUC并发编程】Java内存模型——JMM详解 文章目录【JUC并发编程】Java内存模型——JMM详解一:并发编程模型的两个关键问题二:Java内存模型的抽象结构1:从 CPU 缓存模型说起2:JMM3:JMM与Java内存区域划分的区别与联系4…

(考研湖科大教书匠计算机网络)第三章数据链路层-第二节:封装成帧

专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:封装成帧概述二:封装成帧作用(1)帧定界A:概述B:注意(2)透明传输A:字符填充B&…

设置Linux的信任列表

前言 我们在使用普通用户的时候,我们可以对指令提权,需要用到sudo指令,但是我们在使用的时候会报错。 原因就是,我们linux系统不信任你,必须将你放到我们的信任列表中,我们就可以使用我们的指令提权。 下图是我们在不是…

数据库系统概论②——关系数据库基础

本篇文章主要讲解关系数据库基础中的基本概念,包括关系模型概述、关系的完整性约束等等内容。 同时想要了解更多数据库系统概论知识的朋友可以看下我的上一篇文章数据库系统概论①——数据库系统基本概念 文章目录1、关系数据库的基本概念1.1 关系模型概述1.2 关系数…

【26】C语言_数据存储

目录 数据类型的意义 大小端介绍 例题1:设计一个小程序输出存储方式: 例题2:下列程序输出什么,为什么 例题3:下列程序输出什么,为什么 例题4:下列程序输出什么,为什么 例题6&a…

函数知识点总结

函数知识点总结 函数知识点总结 一、平面直角坐标系中点的坐标 1. 各象限内2. 坐标轴上3. 各象限角平分线上4. 与坐标轴平行的直线上的点5. 点到坐标轴及原点的距离6. 平面上两点距离 一、平面直角坐标系中点的坐标 1. 各象限内 象限x,yx,\,yx,y 的关系第一象限x>0,y&…

powerDesigner如何将数据库中已有表逆向生成pdm文件

问题背景 系统升级,要在原有数据库表结构基础之上重构表系统,为了节省时间,原来能使用的表结构保留,制作升级变动,所以用到了powerDesigner的逆向生成工具。 解决方案 第一种 创建新的PDM工程 点击左上角File&…