STM32/AT32 MCO管脚输出时钟配置

前言:最近在学以太网通讯,发现RMII接口配置的时钟管脚有MCU自己输出,想要看看是怎么输出的,对此进行记录

1、交接项目项目上使用的是PA8管脚来输出时钟50MHZ,提供给上面refclk。

先看手册

PA8的复用功能具备将MCU时钟输出,又叫MCO时钟输出脚。

2、配置输出

下面我以AT32F407VGT7举例

//PA8作为时钟输出引脚进行时钟的测试void GPIO_Configuration(void)

{

GPIO_InitType GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_AFIO, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOA, ENABLE);

GPIO_InitStructure.GPIO_Pins = GPIO_Pins_8;

GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOA, &GPIO_InitStructure);

RCC_CLKOUTConfig(RCC_CLKOUT_SYSCLK, RCC_MCOPRE_4); /*50M

}

上面使用的系统时钟,由于我系统时钟是200MHZ,进行了4分频,所以输出50MHZ

值得注意的是:GPIO输出管脚的最大响应频率为50MHz,如果输出频率超过50MHz,则输出的波形会失真。

所以我们使用尽量不要超过,当然芯片是留有余量的,网上有网友测试ST的,超过了50MHZ输出也是正常,如下图。AT的我没测试过。

相关推荐
charlie11451419110 小时前
嵌入式C++工程实践第16篇:第四次重构 —— LED模板,从通用GPIO到专用抽象
c语言·开发语言·c++·驱动开发·嵌入式硬件·重构
深圳市九鼎创展科技12 小时前
MT8883 vs RK3588 开发板全面对比:选型与场景落地指南
大数据·linux·人工智能·嵌入式硬件·ubuntu
三品吉他手会点灯15 小时前
STM32 VSCode 开发-C/C++的环境配置中,找不到C/C++: Edit Configurations选项
c语言·c++·vscode·stm32·单片机·嵌入式硬件·编辑器
LongRunning16 小时前
【BLE】STM32WB55_定时器碎片(九)
stm32
yu859395817 小时前
STM32 智能红外循迹小车(含码盘测速 + 避障)
stm32·单片机·嵌入式硬件
三品吉他手会点灯17 小时前
STM32 DAP 烧录报错-最终解决方法的原理和操作逻辑
stm32·单片机·嵌入式硬件
fengfuyao98517 小时前
TFT 彩屏 GUI 开发
stm32·嵌入式硬件
长安第一美人18 小时前
算能 BM1688 低延迟推流:Qt+WebSocket 直出 H5/HDMI
开发语言·网络·嵌入式硬件·websocket·交互
yongui4783418 小时前
STM32 三相电机FOC驱动方案(三电阻单电阻双模式)
stm32·单片机·嵌入式硬件
WeeJot嵌入式19 小时前
【串口】初始串口-轮询模式
stm32·单片机·嵌入式