关于MCO使用配置

news/2025/9/26 23:50:12/文章来源:https://www.cnblogs.com/liaigu/p/19110724

关于MCO,相关介绍如下图:

image

 

针对以上8个时钟信号作为MCO时钟输出的配置如下:
1、系统时钟输出
此时MCO引脚(PA8)输出时钟频率即系统主频的大小

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_SYSCLK);

 

2、HSI时钟输出
此时MCO引脚(PA8)输出时钟频率即内部高速时钟(HSI)的大小,一般为8MHz

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_HSI);

 

3、HSE时钟输出
此时MCO引脚(PA8)输出时钟频率即外部高速时钟(HSE)的大小

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_HSE);

 

4、PLL时钟经过2分频输出
关于PLL时钟介绍以及时钟来源参考下图介绍

image

image

 PLL时钟一般在配置系统主频时进行配置,一般默认使用PLL时钟作为系统时钟

image

MCO输出配置如下:

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);

 

5、PLL2时钟输出
关于PLL2时钟,其时钟树框图如下:

image

 可通过时钟控制寄存器和时钟配置寄存器2配置开启PLL2时钟,注意关于PLL2倍频因子以及分频因子配置,需要在PLL2关闭才可写入

image

MCO输出PLL2时钟配置如下:

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);//    RCC->CFGR2 |= (uint32_t)(RCC_PREDIV2_Div2 | RCC_PLL2Mul_6 );
//    RCC->CTLR |= ((uint32_t)RCC_PLL2ON);
RCC_PLL2Cmd(DISABLE);RCC_PREDIV2Config(RCC_PREDIV2_Div2);RCC_PLL2Config(RCC_PLL2Mul_6);RCC_PLL2Cmd(ENABLE);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_PLL2CLK);

 

6、PLL3时钟输出
关于PLL3时钟,其时钟树框图如下:

image

同PLL2时钟配置一致,PLL3时钟关于PLL2倍频因子以及分频因子配置,需要在PLL3关闭才可写入

image

 MCO输出PLL3时钟配置如下:

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);//    RCC->CFGR2 |= (uint32_t)(RCC_PREDIV2_Div2 | RCC_PLL3Mul_4 );
//    RCC->CTLR |= ((uint32_t)RCC_PLL3ON);
RCC_PLL3Cmd(DISABLE);RCC_PREDIV2Config(RCC_PREDIV2_Div2);RCC_PLL3Config(RCC_PLL3Mul_4);RCC_PLL3Cmd(ENABLE);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_PLL3CLK);

 

7、PLL3时钟经过2分频输出
程序配置如下:

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);//    RCC->CFGR2 |= (uint32_t)(RCC_PREDIV2_Div2 | RCC_PLL3Mul_4 );
//    RCC->CTLR |= ((uint32_t)RCC_PLL3ON);
RCC_PLL3Cmd(DISABLE);RCC_PREDIV2Config(RCC_PREDIV2_Div2);RCC_PLL3Config(RCC_PLL3Mul_4);RCC_PLL3Cmd(ENABLE);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_PLL3CLK_Div2);

 

8、XT1 外部 3-25MHz 振荡器(用于以太网)
程序配置如下:

    GPIO_InitTypeDef GPIO_InitStructure = {0};RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);/* MCO Output GPIOA 8 */RCC_MCOConfig(RCC_MCO_XT1);

 

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

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

相关文章

网络运维 --- ntp服务器

网络运维 --- ntp服务器在Windows系统中开启NTP服务器功能,主要可以通过以下步骤实现。以下是详细说明:方法一:通过注册表配置(适用于Windows专业版/服务器版)开启NTP服务器功能:按 Win + R 输入 regedit 打开注…

站点和网站的区别南宁网站建设活动

首先,我们需要明确一点,HTTPS证书的价格并不是一成不变的,它受到多种因素的影响。其中最主要的因素包括证书的类型、颁发机构以及所需的验证级别。 从类型上来看,HTTPS证书主要分为单域名证书、多域名证书和通配符证书。单域名证书…

向量那点事儿

目录一、向量坐标表示二、加减法向量加法应用示例向量减法应用示例三、向量内积应用示例四、向量外积应用示例五、小试牛刀代码示例六、小结 一、向量 这次我们继续聊一下向量。 向量可以理解为一个有方向的量。 它既有…

c++输入输出详解

C++ 的输入输出(I/O)主要通过标准库中的流对象实现,核心是对“数据流”的操作。其语法规则围绕“流对象”“操作符”和“数据类型匹配”展开,以下从标准 I/O(控制台) 和文件 I/O 两部分详细说明。 一、标准输入输…

docker/docker compose/k8s

Docker、Docker Compose 和 Kubernetes(K8s)是现代容器化技术的核心组成部分,但它们扮演着不同的角色。 简单来说:Docker:用来创建和运行单个容器的工具。Docker Compose:用来定义和运行多个相互依赖的容器的工具…

中国开发者迎来新选择:Gitee成为研发协作平台转型期的中流砥柱

中国开发者迎来新选择:Gitee成为研发协作平台转型期的中流砥柱 随着腾讯CODING DevOps系列产品宣布逐步停止服务,中国开发者社区正面临一次重要的工具链迁移抉择。在这一行业转折点上,本土化研发协作平台Gitee凭借其…

PySpark - Get the number of rows

PySpark - Get the number of rowsspark is a SparkSession object, what does spark.sql().collect() do? ChatGPT said:Good question 👍 Let’s break it down:spark → a SparkSession object.spark.sql(query)…

如何推销网站建设做网站怎么签订协议

元描述:想要找到下一个 100 倍加密货币投资?请密切关注这篇文章;它揭示了所有可能很快变得非常有价值的 TON 网络宝石。 由 Telegram 提供支持的 TON(开放网络)生态系统正在蓬勃发展!这是一个充满激动人心的…

RK3588-ubuntu server - 详解

RK3588-ubuntu server - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

一文教你上手 Geometric Glovius 6.0:安装、授权与首个项目演示

Geometric Glovius 6.0.0是一款功能强大的3D可视化分析软件。它支持CATIA、NX、Creo等多种主流CAD文件格式,能精确测量距离、面积、体积等数据,还可进行动态截面切割、模型差异对比等操作。用户可通过缩放、旋转等方…

32单片机+free rtos移植CJSON库函数主要流程

1.cJSON库的官方地址 源码地址: https://github.com/DaveGamble/cJSON 2.提取cJSON.c cJSON.h 3.在项目中添加cJSON的路径并编译一遍 4.在main函数初始化时添加下面代码,重定向内存的申请,内存申请定向到rtos的内存池…

Gitee如何重塑中国开发者生态:本土化创新与数字化转型的双重奏

Gitee如何重塑中国开发者生态:本土化创新与数字化转型的双重奏 在数字经济蓬勃发展的今天,代码托管平台已经从单纯的工具演变为开发者生态系统的核心枢纽。作为国内领先的一站式代码托管与协作平台,Gitee凭借对中国…

从MESA模型到锁升级:synchronized性能逆袭的底层逻辑

从MESA模型到锁升级:synchronized性能逆袭的底层逻辑管程(Monitor)是一种用于管理共享资源访问的程序结构,能确保同一时刻只有一个线程访问共享资源,解决并发编程中的互斥和同步问题。MESA模型是管程的经典实现,…

网站建设项目进展情况汇报浙江省建设银行纪检官方网站

机器人模型获取 接上期:机器人控制系列教程之控制理论概述,文中详细讲解了如何通过Solidworks软件导出URDF格式的文件。文末提到了若需要将其导入到Simulink中可在命令行中输入smimport(urdf/S_Robot_urdf.urdf),MATLAB将自动打开Simulink以…

输入输出接口

IO接口的作用 又被称为IO控制器,设备控制器,负责协调主机和外部设备之间的数据传输 1.数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设的工作速度匹配 2.错误或状态检测:通过状态寄存器反馈设备的各种错误,状态…

Go语言中的信号捕获与优雅退出:SIGINT、SIGTERM和SIGKILL详解 - 若

在开发长期运行的服务时,如何让程序优雅退出是一个重要课题。今天我们来深入探讨Go语言中如何处理常见的进程信号,实现平滑关闭。 理解三个关键信号 1. SIGINT(信号2)- 礼貌的中断请求全称:Signal Interrupt触发方…

(二)3.1.9 生产“稳”担当:Apache DolphinScheduler Worker 服务源码全方位解析

本文是 Apache DolphinScheduler 3.1.9 版本源码解读的第二篇:Worker Server 启动流程源码解读以及相关流程设计。结尾处附有相关流程图,供大家参考。作者 | 李杰 移动云,Apache DolphinScheduler贡献者在现代数据驱…

实用指南:虚拟机搭建 DHCP 服务器 + 配置 DHCP 中继:完整实操指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站设计的技术方案wordpress安装主题教程

(来源:武汉市发改委)原标题:加快打造“五个中心” 武汉率先开建人工智能计算中心从华为东莞松山湖基地运来的预制化模块箱体,正在光谷科学岛起步区被吊装,未来将被“拼装”成武汉重要的人工智能算力基础设施。3月1日,武…

创建一个网站需要怎么做投票链接制作哪家服务好

在本篇文章里小编给大家整理的是一篇关于Python中免验证跳转到内容页的实例代码,有兴趣的朋友们可以学习分享下。相信很多人在浏览网页时,经常会碰到需要输入验证码才可以继续浏览的情况吧,遇到这种问题,大多数人只能进行繁琐的注…