myidear 发表于 2016-9-22 20:45

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

我记得是引脚可以输出时钟信号的,但是在数据手册中没有找到这个说明

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位控制。

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位控制。
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模式。


试过了不行的没有波形输出
页: [1]
查看完整版本: STM32F103是否可以输出时钟信号呢?