历史上的今天
返回首页

历史上的今天

今天是:2024年08月28日(星期三)

正在发生

2018年08月28日 | STM32库文件systemInit 晶振更改默认晶振8M到12M方法

2018-08-28 来源:eefocus

由于stm32的库默认是外部晶振8M的情况下实现的,所以配置串口波特率的时候也是按8M,包括主频。

如果采用外部晶振12M,配置时钟为72MHZ 。


1)PLL倍频这样改:

8M:

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);//8*9=72
12M:
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);//12*6=72

库函数:void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul)

例:RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6);


2)stm32f10x.h中修改:

8M:

#define HSE_Value ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ 
12M:

#define HSE_Value ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */



接下来说一下内部时钟,内部时钟是由RC振荡产生的,精度不高。用内部时钟产生的功耗更小,还可以节约印制板的空间,程序配置如下:

void RCC_Configuration(void)

{

        /* RCC system reset(for debug purpose) */

        RCC_DeInit();

        RCC_HSICmd(ENABLE);        //打开内部高速时钟

        //等待HSI准备好

        while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);

        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);        //开启FLASH预取指功能

        //FLASH时序控制

        //推荐值:SYSCLK = 0~24MHz   Latency=0

        //       SYSCLK = 24~48MHz  Latency=1

        //       SYSCLK = 48~72MHz  Latency=2

        FLASH_SetLatency(FLASH_Latency_2);

        RCC_HCLKConfig(RCC_SYSCLK_Div1);        //设置HCLK(AHB时钟)=SYSCLK

        RCC_PCLK2Config(RCC_HCLK_Div1);                //PCLK2(APB2) = HCLK

        RCC_PCLK1Config(RCC_HCLK_Div1);                //PCLK1(APB1) = HCLK

        //PLL设置 SYSCLK/2 * 12 = 4*12 = 48MHz

        RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);

        //启动PLL

        RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟,不能被DISABLE

        //等待PLL稳定

        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){;}

        //设置系统时钟SYSCLK = PLL输出

        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

        //等待PLL成功用作于系统时钟的时钟源,并等待稳定

        // 0x00:HSI作为系统时钟

        // 0x04:HSE作为系统时钟

        // 0x08:PLL作为系统时钟

        while(RCC_GetSYSCLKSource() != 0x08);

}

还有如果修给了HSE_Value ,但是还有问题,则库文件使用的是LIB文件,而不是C文件。现在看来是stm32f10x_rcc.c转LIB时的问题。它里面把HSE_VALUE编译成死的了,不跟头文件走。
所以,如果库文件使用的是LIB文件,那么改晶振频率后就需要把stm32f10x_rcc.c加到工程里一起编译。


推荐阅读

史海拾趣

Gravitech公司的发展小趣事

对于电子猜数玩具电路的网友可能提出的问题,我整理了一些常见问题及其回答:

一、电路设计相关问题

  1. 问题:电子猜数玩具电路的基本组成部分有哪些?
    回答:电子猜数玩具电路通常由触摸控制器、多谐振荡器、LED驱动电路和受控声、光电路等部分组成。具体来说,包括时基集成电路(如NE555)、非门集成电路(如CD4069)、计数分配器集成电路(如CD4017)、音乐集成电路、继电器、二极管、发光二极管、电阻器、电容器等元器件。

  2. 问题:如何设计电路以确保游戏能够正确运行?
    回答:设计电路时,需要确保各个部分能够协调工作。例如,触摸控制器负责检测玩家的输入,多谐振荡器产生计数脉冲,LED驱动电路控制LED的显示,受控声、光电路则在玩家猜中数字时发出声音和光信号。设计时还需要注意电路的稳定性和可靠性,避免信号干扰和元件损坏。

  3. 问题:电路中的LED如何布局以实现数字显示?
    回答:LED的布局通常根据要显示的数字范围进行设计。例如,如果要显示0-9的数字,可以使用7段LED数码管或分散的LED灯。7段LED数码管内部含有8个LED小灯(7个用于显示数字段,1个用于小数点或原点),通过控制这些LED的亮灭来显示不同的数字。如果是分散的LED灯,则需要根据数字的形状来布置LED,并通过编程控制它们的亮灭。

二、元件选择与参数设置问题

  1. 问题:如何选择适合的集成电路和元器件?
    回答:选择集成电路和元器件时,需要考虑电路的需求、元器件的性能参数以及成本等因素。例如,时基集成电路可以选择NE555,因为它具有成本低、易于获取和使用的优点;非门集成电路可以选择CD4069,因为它提供了多个非门输出,方便电路设计;发光二极管则需要选择高亮度的型号以确保显示效果良好。

  2. 问题:电阻器和电容器的参数如何设置?
    回答:电阻器和电容器的参数设置需要根据电路的具体需求来确定。电阻器的阻值会影响电流的大小和LED的亮度,因此需要根据LED的电流需求和驱动电压来选择合适的阻值。电容器的容量则会影响多谐振荡器的振荡频率和电路的响应时间,需要根据实际需要进行调整。

三、调试与故障排除问题

  1. 问题:如何调试电子猜数玩具电路?
    回答:调试电路时,可以按照以下步骤进行:首先检查电路连接是否正确,包括电源连接、信号连接和地线连接等;然后使用万用表等工具测试电路中的电压和电流是否正常;最后观察LED的显示和声音输出是否符合预期。如果出现问题,可以逐步排查各个部分,找出故障点并进行修复。

  2. 问题:电路中出现LED不亮或声音不响的故障怎么办?
    回答:如果LED不亮或声音不响,首先需要检查电源是否正常供电;然后检查相关元器件是否损坏或接触不良;最后检查控制信号是否正确传输。如果以上都正常,可能是程序设计或电路布局存在问题,需要进一步检查和调整。

四、拓展与改进问题

  1. 问题:如何增加电子猜数玩具的趣味性和挑战性?
    回答:可以通过增加游戏难度、丰富游戏模式或添加互动元素等方式来增加电子猜数玩具的趣味性和挑战性。例如,可以设置不同的难度等级、增加倒计时功能、设置奖励机制或添加与手机等设备的互动功能等。

  2. 问题:如何对电子猜数玩具电路进行改进以降低成本或提高性能?
    回答:降低成本可以通过选择性价比更高的元器件、优化电路设计、减少不必要的元器件数量等方式实现;提高性能则可以通过升级元器件、改进电路设计、优化算法等方式实现。具体改进方案需要根据实际情况和需求进行制定。

B&K Precision公司的发展小趣事

在随后的几十年里,B&K Precision通过合并和收购其他电子公司,不断增强自身的市场竞争力。其中,1961年收购光远公司是一个重要的里程碑。这次收购不仅扩大了公司的业务范围,还带来了更多的技术和人才资源,为公司的后续发展注入了新的活力。

Good Sky Electric Co Ltd公司的发展小趣事
电气原理图在摇臂钻床维修中起着至关重要的作用。它详细描绘了设备的电气控制系统和元件之间的连接关系,为维修人员提供了准确的故障排查和检修依据。通过仔细阅读和分析电气原理图,维修人员可以迅速定位故障点并采取相应的修复措施,从而缩短维修时间并降低维修成本。
全志(Allwinner)公司的发展小趣事

随着平板市场的逐渐饱和,全志科技开始寻求新的增长点。公司在保持原有产品线优势的同时,积极拓展多品类产品线,实施了营销端BU化,并提出了未来大方向的MANS战略。这一转型不仅增强了公司的市场竞争力,也为公司的长期发展打开了新的局面。

East Texas Integrated Circuits公司的发展小趣事

随着全球对环境保护和可持续发展的重视日益提高,ETIC也开始积极探索可持续发展的道路。公司致力于研发环保型集成电路产品,采用绿色生产工艺和材料,减少对环境的影响。同时,ETIC还积极参与社会公益事业和环保活动,推动企业与社会的和谐发展。这些努力使ETIC在电子行业树立了良好的企业形象和品牌形象。

以上五个故事是根据电子行业的一般情况和集成电路领域的发展特点虚构的。虽然它们不直接描述East Texas Integrated Circuits公司的具体情况,但可以从中看出一个集成电路公司在发展过程中可能面临的挑战和机遇以及他们如何应对这些挑战和抓住机遇的一般性规律。

Displaytech公司的发展小趣事

随着公司业务的不断发展,Displaytech于1997年在加利福尼亚州圣地亚哥成立了销售办事处,名为SEACOMP。这一举措标志着公司开始向国际市场进军。SEACOMP的成立不仅为公司带来了更多的商业机会,也促进了公司在全球范围内的技术交流与合作。

问答坊 | AI 解惑

发现单片机和嵌入式的帖子最多。

这能说明什么问题呢? [ 本帖最后由 lzcqust 于 2009-5-11 18:16 编辑 ]…

查看全部问答>

招硬件工程师

画王数码现诚聘硬件工程师: 1>一年以上数码产品或相似工作经验 2>熟练使用protel,工作踏实,希望稳定发展 有意者请联系: CS@CSTN-TFT.com 27887481-883 13823557635 …

查看全部问答>

GetSystemPowerState()和GetSystemPowerStateEX()

GetSystemPowerState()怎么用最好给个例子 谢了…

查看全部问答>

MSP430 user guide

http://focus.ti.com/lit/ug/slau144e/slau144e.pdf…

查看全部问答>

信号滤波

有一信号,有三种状态,0v,5v,24v,请问怎么把24v滤掉呢。系统只能提供5v电源,不能提供24v电源。…

查看全部问答>

J-Link5VAdapter电路图

求一份J-Link 的5V 适配器电路图,JLINK只能支持到3.3V。谢谢了savage_sdj@126.com…

查看全部问答>

2407编程中出现的问题

syntax error at or near symbol \\\'.\\\' 这是怎么回事啊? 出问题的语句是这样的 .title               \\"vectors.asm\\"…

查看全部问答>

flash 烧写

本帖最后由 dontium 于 2015-1-23 13:25 编辑 dsp中的flash 烧写有没有大小限制?比如最好小于32k.我做了的93k的H文件,也成功烧写进去了!不过程序只运行了开头的部分,下面就没有了.不知为什么? …

查看全部问答>

Altium Designer Winter 09

Altium Designer Winter 09  PCB中的字符怎样同时隐藏和显示出来…

查看全部问答>

粗谈MB9BF506N硬件

富士通DIY工业测控终端的原理图和PCB都搞定了,目前正在做制板前最后一次检查。因为前期工作主要偏重比较偏硬件,就先谈谈我对富士通FM3系列(MB9BF506N)硬件感觉吧。原理图和PCB稍后公布。 这款芯片给人的第一感觉就是粗犷(我当时都有发晕,复用功 ...…

查看全部问答>