打印
[其他ST产品]

STM32 RCC配置时钟 MCO输出实验

[复制链接]
楼主: 过期的塔头
手机看帖
扫描二维码
随时随地手机跟帖
21
过期的塔头|  楼主 | 2022-8-24 16:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
RCC->CFGR|=4<<24;    ,

RCC_CFGR中第24-26位置为100,MCO输出SYSCLK时钟信号

使用特权

评论回复
22
过期的塔头|  楼主 | 2022-8-24 16:18 | 只看该作者
同理:HSE、HSI、PPL/2的MCO输出代码

//RCC->CFGR|=7<<24;     /* PLL 2分频后输出 */

//RCC->CFGR|=6<<24;     /* HSE输出   */   

//RCC->CFGR|=5<<24;     /*  HSI输出  */

使用特权

评论回复
23
过期的塔头|  楼主 | 2022-8-24 16:19 | 只看该作者
3、信号输出  

生成代码编译后烧写至芯片内,通过示波器显示如下图:

    MCO输出SYSCLK时钟信号                 MCO输出HSE时钟信号

   

使用特权

评论回复
24
过期的塔头|  楼主 | 2022-8-24 16:20 | 只看该作者
4、基于库函数的MCO输出代码

基于库函数的代码直接调用固件库中的函数固件库中对每个所调用的函数都有专门的解释及使用说明,不在赘述。

使用特权

评论回复
25
过期的塔头|  楼主 | 2022-8-24 16:21 | 只看该作者
void RCC_Init(void)
{
        ErrorStatus HSEStartUpStatus;             /* 枚举型变量 */
                RCC_DeInit();                           /*重置RCC  */
                RCC_HSEConfig(RCC_HSE_ON);                /* HSE使能 */
                HSEStartUpStatus=RCC_WaitForHSEStartUp();                   /* 等待HSE起振 */
                if(HSEStartUpStatus==SUCCESS)                   /* 判断HSE起振成功 */
                {
               
                   RCC_HCLKConfig(RCC_SYSCLK_Div1);                   /* 设置AHB时钟HCLK */
                   RCC_PCLK1Config(RCC_HCLK_Div2);                   /*  设置低俗APB1时钟PLCK1*/
                   RCC_PCLK2Config(RCC_HCLK_Div1);                   /*  设置高速APB2时钟PLCK2*/
                   RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_6);      /* 6倍频 */
                }       
                else
         {
                            /*do nothing*/
}
                       
                       
                RCC_PLLCmd(ENABLE);                   /* PLL使能 */
                while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)       /* 检查使能标志位 */
                {
                }
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);       /* PLLCLK作为SYSCLK */
                while (RCC_GetSYSCLKSource()!=0x08) /* 判断SYSCLK是否设置成功
                                            0x08意思是PLL作为系统时钟 */
                {
                }
}



void MCO_GPIO_Config(void)                   /* GPIO配置 */
{               
    GPIO_InitTypeDef GPIO_InitStruct;                   /* 结构体定义 */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);        /* GPIOA使能 */
    GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;                   /* PA8 */
    GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;                   /* 推挽输出 */
    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;                   /*  50MHz*/
    GPIO_Init(GPIOA,&GPIO_InitStruct);                   /*初始化GPIOA  */
}

       
int main(void)
{
    RCC_Init();
    MCO_GPIO_Config();                  
    RCC_MCOConfig(RCC_MCO_SYSCLK);                   /* MCO输出SYSCLK */
       
}

使用特权

评论回复
26
juliestephen| | 2022-9-8 08:21 | 只看该作者
如何将MCO1输出50MHz时钟

使用特权

评论回复
27
wilhelmina2| | 2022-9-8 14:44 | 只看该作者
使用外部时钟还需要配置PA8吗      

使用特权

评论回复
28
primojones| | 2022-9-10 19:10 | 只看该作者
引脚可以输出系统时钟的分频吗  

使用特权

评论回复
29
dspmana| | 2022-9-11 19:05 | 只看该作者
stm32 MCO输出时钟      

使用特权

评论回复
30
tifmill| | 2022-9-11 20:17 | 只看该作者
如何测量stm32的系统主频  

使用特权

评论回复
31
houjiakai| | 2022-11-5 10:39 | 只看该作者
stm32 引脚可以输出系统时钟的分频吗

使用特权

评论回复
32
macpherson| | 2022-11-5 12:05 | 只看该作者
STM32的PA.8引脚具有复用功能——时钟输出(MCO), 该功能能将STM32内部的时钟通过PA.8输出.

使用特权

评论回复
33
Jacquetry| | 2022-11-5 16:18 | 只看该作者
使用外部时钟还需要配置PA8吗?

使用特权

评论回复
34
Stahan| | 2022-11-6 19:41 | 只看该作者
stm32 MCO输出时钟

使用特权

评论回复
35
fengm| | 2022-11-6 20:08 | 只看该作者
STM32 内部时钟输出PA8(MCO) 如何实现  

使用特权

评论回复
36
Henryko| | 2022-11-6 21:05 | 只看该作者
引脚可以输出系统时钟的分频吗?

使用特权

评论回复
37
minzisc| | 2022-11-9 17:22 | 只看该作者
STM32还可以选择一个时钟信号输出到MCO1脚(PA8)和MCO2脚(PC9)上,可以选择为PLL输出的1~5分频、HSI、HSE、或者系统时钟。

使用特权

评论回复
38
MessageRing| | 2022-11-9 20:08 | 只看该作者
引脚可以输出系统时钟的分频吗

使用特权

评论回复
39
updownq| | 2022-11-10 11:56 | 只看该作者
STM32的MCO引脚是输出内部时钟的,请问输出内部时钟有什么意义

使用特权

评论回复
40
sdCAD| | 2022-11-10 14:53 | 只看该作者

stm32 MCO输出时钟,怎么在MDK软件里看到引脚PA.8的输出

使用特权

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

本版积分规则