STM32 RCC实验MCO脚输出时钟波形

发布者:Zhenxiang最新更新时间:2016-10-10 来源: eefocus关键字:STM32  RCC实  MCO脚  时钟波形 手机看文章 扫描二维码
随时随地手机看文章
一:rcc设置使用内部HSI时钟,SYSclk 64M    MCO输出32M
1:
void RCC_Configuration(void)
{
  ErrorStatus HSEStartUpStatus;  
  /* RCC system reset(for debug purpose) */
  RCC_DeInit();     //??RCC?????÷?è?????±????
 
  /* Enable HSE */
  //RCC_HSEConfig(RCC_HSE_ON);    //?è???????????§??
RCC_HSEConfig(RCC_HSE_OFF);
RCC_HSICmd(ENABLE);                        //??????
  //RCC_HSICmd(DISABLE);                        //??????
  /* Wait till HSE is ready */     //HSE  ?????????§??
  //HSEStartUpStatus = RCC_WaitForHSEStartUp();       //????HSE????
 
       while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET)        
        {        
        }
 
 // if(HSEStartUpStatus == SUCCESS)
//  {
    /* HCLK = SYSCLK *///?è??AHB?±??=?????±??    ?¨RCC_SYSCLK_Div1??·?????????
    RCC_HCLKConfig(RCC_SYSCLK_Div1);     
  
    /* PCLK2 = HCLK *///?è??????APB2?±??(×??ó72MHZ)
    RCC_PCLK2Config(RCC_HCLK_Div1);    //RCC_HCLK_Div1   ??·?????RCC_HCLK_Div2  2·???
 
    /* PCLK1 = HCLK/2 *///?è??????APB1?±???¨×??ó36MHZ??
    RCC_PCLK1Config(RCC_HCLK_Div2);
 
    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 
    /* PLLCLK = 8MHz * 9 = 72 MHz */
    //RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
 
    //?????±????8/2=4M   4*16 = 64        hsi  =  64m  (MAX)
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2 , RCC_PLLMul_16);
 
 
    /* Enable PLL */ 
    RCC_PLLCmd(ENABLE);
 
    /* Wait till PLL is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
 
    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 
    /* Wait till PLL is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
 // }  
}
 
2:设置MCO引脚PA8
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  // ×???????????50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);
注意: A8引脚使用复用推挽输出模式,我使用推挽输出的时候波形没出来,推挽输出只能输出TTL,复用推挽可以输出时钟波形
 
3:设置MCO模式
RCC_MCOConfig(RCC_MCO_PLLCLK_Div2);  //因为端口最大50M所以要PLL    2分频
 
 
二:rcc设置使用外部HSE时钟,SYSclk 72M    MCO输出36M
只要改变RCC设置即可,其他不变

关键字:STM32  RCC实  MCO脚  时钟波形 引用地址:STM32 RCC实验MCO脚输出时钟波形

上一篇:STM32输入捕获,实现红外解码,支持长按
下一篇:STM32中断优先级理解及先占优先级和从优先级

推荐阅读最新更新时间:2024-03-16 15:14

几步实现stm32上面移植mqtt
最近项目需要,stm32上面使用到mqtt了,百度了下,发现网上资料还是挺少的,虽然有几份相关的资料,下载下来之后,看到了mqtt的底层代码竟然还有错误,这个问题导致了我后面一直调试不通,后来,我直接从官方下载了mqtt的源码用比较器比较后找到了原因,最后果断将官方的mqtt底层代码移植上来,mqtt的发布还是比较顺利,订阅虽然可以收到消息,但是由于没有移植os,发布消息时,订阅接受有时无法收到消息,这个还在优化,我使用的是stm32f103c8t6平台+w5500.其实只要带以太网接口就行。 首先我们从mqtt官方下载源码 http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.e
[单片机]
STM32的学习心得之RCC(时钟)
从51单片机转到STM32单片机有点困难,很多理解都停留在51的概念上,对STM32单片机学习需要重新认识,比如RTC...... RTC是STM32单片机的脉搏,是单片机的驱动源。使用任何一个外设都必须打开相应的时钟。这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。 STM32单片机的时钟可以由以下3个时钟源提供: 1、HSI:高速内部时钟信号 stm32单片机内带的时钟 (8M频率) 精度较差 2、HSE:高速外部时钟信号 精度高 来源(1)HSE外部晶体/陶瓷谐振器(晶振) (2)HSE用户外部时钟
[单片机]
stm32的互补输出和死区插入
1,简介 死区,简单解释:通常,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的PWM驱动信号在达到功率元件的控制极时,往往会由于各种各样的原因产生延迟的效果,造成某个半桥元件在应该关断时没有关断,造成功率元件烧毁。死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁。这段延迟时间就是死区。(就是上、下半桥的元件都是关断的)死区时间控制在通常的低端单片机所配备的PWM中是没有的。 PWM的上下桥臂的三极管是不能同时导通的。如果同时导通就会是电源两端短路。所以,两路触发信号要在一段时间内都是使
[单片机]
浅析STM32 FSMC操作LCD的过程
FSMC称为灵活的静态存储器,它能够与同步或异步存储器和16位PC存储器卡连接,STM32F4的FSMC接口支持包括SRAM、NAND FLASH、NOR FLASH和PSRAM等存储器。 FSMC框图 从FSMC框图可以看到,FSMC将外部设备分为2类:NOR/PSRAM设备和NAND/PC卡设备。所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一个外部器件。 NE4相连,即利用FSMC_NE4实现对LCD的片选;另外SRAM芯片的片选接口与FSMC_NE3相连,即利用FSMC_NE3实现对SRAM芯片的片选。FSMC本身就是静态存储器控制器,通过FSMC接口访问SRAM是理所当然的
[单片机]
浅析<font color='red'>STM32</font> FSMC操作LCD的过程
STM32 RTC时钟源LSE
一开始,所有实验都是在神舟板上去完成,根本就没有发现RTC的问题。直到我们自己画板来后调试时,才发现STM32 RTC的外部时钟源存在问题。 这也算是STM32的一个鸡肋,对于LSE外部晶振太过于苛刻,手册上要求使用6pf,这个规格的晶振市场上太少,鱼龙混杂,中招的高手菜鸟不在少数。我们自己的板也是如此,几经波折,反反复复尝试使用不同的规格的晶振,替换外部的电容,电阻都没有能让这个32.768K的LSE起振。但是又需要有RTC来提供时间,考虑的方法主要有2种,第一采用外部RTC时钟芯片,如DS1302。第二是使用内部其它的时钟源来提供RTC时钟。毫无疑问,目前板已经制好,添加时钟芯片肯定造成板上布局更改,还得重新打板,这里采用了第二
[单片机]
<font color='red'>STM32</font> RTC<font color='red'>时钟</font>源LSE
STM32 按键输入
#include stm32f10x.h #include key.h //按键初始化函数 void KEY_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8; GPIO_InitStructure.GPIO_S
[单片机]
STM32外拓RAM
这两天调试STM32F103外扩SRAM,将调试过程中遇到的问题记录下,SRAM的规格是256K*16的异步SRAM,地址总线为18,数据线宽度为16. 在调试过程中遇到一些小问题,希望读者能少走些弯路。 先看一下FSMC内存映射图: 由图可知,stm32的FSMC模块分为四个bank,每个bank的大小事64M。 下面这张图是FSMC各个块的信号分配图。 由上图可知,bank1 NOR/PSRAM可以分为4个子块,由FSMC_NE 来选择使能哪个子块。 例如:每小块NOR/PSRAM的64M地址范围如下: 第一块:6000 0000h--63ff ffffh 第二块:6400 0000h--67ff ffffh 第
[单片机]
<font color='red'>STM32</font>外拓RAM
STM32外部中断解决方法
01 单片机外部中断简介 所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平、低电平)、边沿变化(上升沿、下降沿)等。51单片机有5个中断源,其中有两个是外部中断,分别为INT0和INT1,INT0被分配在P3.2引脚,INT1被分配在P3.2引脚,也即是说如果使用51单片机的外部中断0,则必须将信号接在P3.2上,否则无效。 02 举例说明什么是中断 单片机在执行程序时有两种方式: 查询方式 中断方式 所谓查询方式就是单片机一遍一遍的扫描,查看所监视的目标有没有发生变化,是一种主动式的监视方法,用一个成语可以很客观的描述:守株待兔。 所谓中断方式就是单片机不主动去监视目标,而是目标主动通知单片机状态
[单片机]
<font color='red'>STM32</font>外部中断解决方法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved