STM32F103是否可以输出时钟信号呢?

[复制链接]
4251|17
手机看帖
扫描二维码
随时随地手机跟帖
hello_海涛| | 2016-9-22 21:59 | 显示全部楼层
就知道外部震荡引脚的 CLKout 能输出时钟 但是不可控
再就是用定时器了

使用特权

评论回复
gaoxiansheng| | 2016-9-23 17:21 | 显示全部楼层
hello_海涛 发表于 2016-9-22 21:59
就知道外部震荡引脚的 CLKout 能输出时钟 但是不可控
再就是用定时器了 ...

不可控是什么意思呢?定时器输出的那叫波形,能叫时钟吗?

使用特权

评论回复
hello_海涛| | 2016-9-23 20:14 | 显示全部楼层
gaoxiansheng 发表于 2016-9-23 17:21
不可控是什么意思呢?定时器输出的那叫波形,能叫时钟吗?

定时器的话就是用50%占空比的PWM当时钟信号啊,
片上时钟输出我也没用过  但是技术手册上有这方面的描述,原文如下:
6.2.10 时钟输出
微控制器允许输出时钟信号到外部MCO引脚。
相应的GPIO端口寄存器必须被配置为相应功能。以下四个时钟信号可被选作MCO时钟:
● SYSCLK
● HSI
● HSE
● 除2的PLL时钟
时钟的选择由时钟配置寄存器(RCC_CFGR)中的MCO[2:0]位控制。

使用特权

评论回复
hello_galaxy| | 2016-9-23 21:02 | 显示全部楼层
我记得有个MCO引脚的,可以输出时钟的频率。

使用特权

评论回复
lt1231| | 2016-9-24 18:50 | 显示全部楼层
内部时钟输出PA.8(MCO)
STM32的PA.8引脚具有复用功能——时钟输出(MCO), 该功能能将STM32内部的时钟通过PA.8输出.

使用特权

评论回复
merry_zsp| | 2016-9-25 16:27 | 显示全部楼层
操作MCO引脚的流程如下:
操作流程:
1)、设置PA.8为复用Push-Pull模式。
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

2)、选择输出时钟源。
时钟的选择由时钟配置寄存器(RCC_CFGR)中的MCO[2:0]位控制。
RCC_MCOConfig(RCC_MCO);
参数RCC_MCO为要输出的内部时钟:
RCC_MCO_NoClock --- 无时钟输出
RCC_MCO_SYSCLK --- 输出系统时钟(SysCLK)
RCC_MCO_HSI --- 输出内部高速8MHz的RC振荡器的时钟(HSI)
RCC_MCO_HSE --- 输出高速外部时钟信号(HSE)
RCC_MCO_PLLCLK_Div2 --- 输出PLL倍频后的二分频时钟(PLLCLK/2)

使用特权

评论回复
hello牟| | 2016-9-25 22:37 | 显示全部楼层
6.2.10  时钟输出
微控制器允许输出时钟信号到外部MCO引脚。
相应的GPIO端口寄存器必须被配置为相应功能。以下四个时钟信号可被选作MCO时钟:
● SYSCLK
● HSI
● HSE
.........

使用特权

评论回复
大白农| | 2016-9-27 15:54 | 显示全部楼层
给你个用过的代码看看
GPIO_InitTypeDef GPIO_InitStructure;
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
   RCC_MCOConfig(RCC_MCO_PLLCLK_Div2 );

使用特权

评论回复
nobleliom| | 2016-9-27 17:41 | 显示全部楼层
IO的最大翻转速率50MHZ,频率最大72MHZ,IO是如何输出的呢?

使用特权

评论回复
jp_chen| | 2016-9-28 14:54 | 显示全部楼层
lt1231 发表于 2016-9-24 18:50
内部时钟输出PA.8(MCO)
STM32的PA.8引脚具有复用功能——时钟输出(MCO), 该功能能将STM32内部的时钟通过PA ...

我的问题是:1、这些输出会被映射到哪些引脚?
                 2、如何配置这些引脚?

使用特权

评论回复
几时再见| | 2016-9-28 18:08 | 显示全部楼层
RCC->APB2ENR|=1<<0;//使能AFIO时钟    
     RCC->APB2ENR|=1<<2;//先使能外设PORTA时钟
    GPIOA->CRH&=0XFFFFFFF0;     
    GPIOA->CRH|=0X0000000B;//PA8复用输出           
    RCC->CFGR&=~(7<<24);
    RCC->CFGR|=6<<24;   //HSI OUT 8Mhz

使用特权

评论回复
jermy_z| | 2016-9-30 13:03 | 显示全部楼层
怎么知道是PA8用于MCO,在网上查了很多都用这个端口,可是在手册上又找不到关于MCO用哪个端口的说明

使用特权

评论回复
zhangyi3312| | 2016-9-30 16:15 | 显示全部楼层
MCO是STM32的一个时钟输出IO(PA8),可以选择一个时钟信号输出。这个时钟可以用来给外部其他系统提供时钟源。

使用特权

评论回复
16号哨兵| | 2016-9-30 21:25 | 显示全部楼层
配置输出是有前提条件的,必须使用HSI,用PLL的话,是不能输出的

使用特权

评论回复
Creas_Tall| | 2016-10-15 20:43 | 显示全部楼层
先把pa8配置成推挽输出,然后选择输出时钟,下面这个程序的前提是用的12M外部晶振,获得48M信号
//先设置ppl 8倍频获得96Mhz时钟
RCC_HSEConfig(RCC_HSE_ON);
RCC_WaitForHSEStartUp();
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_8);
RCC_PLLCmd(ENABLE);
//然后设置PA8口
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
//设置时钟输出
RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);

使用特权

评论回复
肥羊| | 2018-9-13 17:20 | 显示全部楼层
merry_zsp 发表于 2016-9-25 16:27
操作MCO引脚的流程如下:
操作流程:
1)、设置PA.8为复用Push-Pull模式。

试过了不行的没有波形输出

使用特权

评论回复
肥羊| | 2018-9-13 17:21 | 显示全部楼层
merry_zsp 发表于 2016-9-25 16:27
操作MCO引脚的流程如下:
操作流程:
1)、设置PA.8为复用Push-Pull模式。

试过了不行的没有波形输出

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

249

帖子

0

粉丝