历史上的今天
返回首页

历史上的今天

今天是:2024年09月01日(星期日)

正在发生

2018年09月01日 | stm32f105外部晶振由8MHz调整到12MHz库的修改

2018-09-01 来源:eefocus

1、首先是stm32f10x.h中的HSE_VALUE


#if !defined  HSE_VALUE

 #ifdef STM32F10X_CL

 #define HSE_VALUE    ((uint32_t)12000000)//这里修改为12MHz

//  #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */注释掉

 #else 

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

 #endif /* STM32F10X_CL */

#endif /* HSE_VALUE */

2、修改分频/倍频系数使系统时钟变为72MHz


在system_stm32f10x.c的void SystemInit (void)函数下有一个SetSysClock()继续找static void SetSysClock(void)下的SetSysClockTo72();修改后如下一段代码:

其中被注释掉的部分为原来的代码。

 

    /* Configure PLLs ------------------------------------------------------*/

    /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */

    /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */

       

    RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL |

                              RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC);

//    RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 |

//                             RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);

  

//HSE =  12 PLL2CLK = (HSE / 3) * 10 = 40 MHz

RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV3 | RCC_CFGR2_PLL2MUL10 |

RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);

    /* Enable PLL2 */

    RCC->CR |= RCC_CR_PLL2ON;

    /* Wait till PLL2 is ready */

    while((RCC->CR & RCC_CR_PLL2RDY) == 0)

    {

    }

    

//   

//    /* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */ 

//    RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);

//    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | 

//                            RCC_CFGR_PLLMULL9); 

 

RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);

RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 | 

RCC_CFGR_PLLMULL6); 

#else    

//    /*  PLL configuration: PLLCLK = HSE * 9 = 72 MHz */

//    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |

//                                        RCC_CFGR_PLLMULL));

//    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);

    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |

                                        RCC_CFGR_PLLMULL));

    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);


推荐阅读

史海拾趣

CHERRY公司的发展小趣事

Cherry公司的研发部门一直是其核心竞争力所在。在一位年轻小伙子的带领下,Cherry在1983年成功研发出了具有里程碑意义的MX机械轴。这一创新产品不仅提升了键盘的使用寿命和舒适度,还解决了多个按键同时按下时的冲突问题。MX轴的诞生标志着Cherry在机械键盘领域取得了重大突破,也为公司赢得了更多的市场份额。

ARMKEIL Microcontroller Tools公司的发展小趣事

在ARM公司的支持下,Keil公司不断进行技术创新和产品升级。其中最具代表性的是Keil C51集成开发环境的推出。这一产品不仅继承了Keil PK51的优点,还在性能、稳定性和易用性等方面进行了大幅提升。Keil C51的推出,极大地满足了市场对嵌入式系统开发的需求,也进一步巩固了Keil公司在行业内的领先地位。

ALCOA公司的发展小趣事

随着技术的不断进步和市场的扩大,ALCOA公司的业务逐渐扩展到铝土矿开采、氧化铝精炼和原铝生产等领域。这种垂直整合的模式使得公司能够更好地控制原材料的质量和供应,提高了生产效率,也降低了成本。到了20世纪中期,ALCOA已经成为全球最大的铝业公司之一,几乎垄断了全球的铝市场。

安碁科技(AKER)公司的发展小趣事

1990年,安碁科技股份有限公司正式成立,标志着其进军石英振荡器领域的起点。公司初创时期,面临着激烈的市场竞争和技术挑战。然而,安碁科技凭借对技术的执着追求和对市场的敏锐洞察,逐步在行业中崭露头角。通过不断的技术研发和产品创新,公司逐渐建立了自己的品牌地位,为后续的发展奠定了坚实的基础。

Hendon Semiconductors公司的发展小趣事

随着全球化进程的加速和国际贸易的不断发展,Hendon Semiconductors积极实施全球化战略,不断拓展国际市场。公司加强与国际客户的合作与交流,了解他们的需求和期望,并根据市场变化调整产品结构和市场策略。同时,Hendon Semiconductors还积极参与国际展会和技术交流活动,展示其最新的技术和产品成果,提升品牌知名度和影响力。通过一系列有效的市场拓展措施和全球化战略的实施,Hendon Semiconductors在国际市场上取得了显著的成绩和突破。

FILTRONETICS Inc公司的发展小趣事

FILTRONETICS Inc成立于1970年代,初期专注于滤波器技术的研发与生产。在那个时代,随着通信技术的快速发展,对高质量滤波器的需求日益增长。公司研发团队通过不懈努力,成功研发出了一种新型LC滤波器,该滤波器在频率选择性和插入损耗方面表现出色,迅速获得了市场的认可。这一技术突破不仅巩固了FILTRONETICS在滤波器领域的地位,也为公司的后续发展奠定了坚实的基础。

问答坊 | AI 解惑

2009第五届NI测控前沿技术论坛即将拉开帷幕

尊敬的工程师: 感谢您对NI长期以来的支持,2009第五届NI测控前沿技术论坛即将拉开帷幕。 作为广受好评的年度盛会,您不仅可以通过资深工程师的讲解了解最新前沿技术,还可以亲自投票选择自己感兴趣的专题内容。 NI诚邀您参与第五届测控前沿技 ...…

查看全部问答>

为什么vxworks启动后会打印出一些杂乱的信息呢?

各位高手,我把我的应用程序编译进内核后,启动vxworks后,经常会打印出一些杂乱的信息,甚至丢失了命令提示符,比如下面这个(我在RAM里建立了文件系统,并建立临时文件,最后销毁): ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]] ...…

查看全部问答>

分享嵌入式Linux关键开发技术(6.12深圳)

Linux除作为服务器操作系统外,其最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。目前嵌入式Linux凭借着自身 ...…

查看全部问答>

matlab R2007a 的Instrument Control Toolbox

请问谁有matlab 7.1.0(R2007a) 的Instrument Control Toolbox软件啊?提供下。谢啦~…

查看全部问答>

如何在WINCE下通过有线局域网访问网络

各位大虾;     有个问题请教大家, 我在ARM系统的开发板上要访问网络,网卡芯片是CS8900, 驱动也都有了, 在WINCE下我需要加哪些组件呢? 另外,如何配置呢/ 请知道的大虾指点一下, 不胜感激.…

查看全部问答>

VB.NET编写WINCE下十六进制的串口通讯

你好,我是一个初学者,由于工作的原因,我要开发一个在wince5.0下的和串口(rs-232)进行通讯的软件,想用VB.net来开发.    请问该如何和实现,我的要求很简单:    以16进制发送命令,如“3E 30 38 35 32 38 0D\" 然后返回十六 ...…

查看全部问答>

STM8S的C编译器太贵了!那位大侠处理一下啊!

IAR STM8S报价:2.3万人民币 COSMIC STM8S报价:2.3万人民币 Raisonance STM8S报价:990欧元(算成人民币大约:8600元不到) 三个用起来感觉Raisonance用起来好用些,价格也算是最便宜的!不过没有石皮 角刀牛。 比起AVR的CodeVisionAVR ...…

查看全部问答>

ADC10实验例程(含C#上位机)

C#上位机学习资料 https://bbs.eeworld.com.cn/viewthread.php?tid=308129&page=1#pid1198878上周逛论坛看到上面的C#串口教程,觉得挺有趣的,跟着学了一下,结合LaunchPad写了一个简单的ADC10+串口上位机。第一次用C#,线程、运行机制呀什么的 ...…

查看全部问答>

从单片机初学者迈向单片机工程师(一份正真的让你成为工程师的贴子)

学习单片机也已经有几年了,藉此机会和大家聊一下我学习过程中的一些经历和想法吧。也感谢一线工人提供了这个机会。希望大家有什么好的想法和建议都直接跟帖说出来。毕竟只有交流才能够碰撞出火花来^_^。     几年前,和众多初学 ...…

查看全部问答>

蓝牙4.0,低功耗的秘密

    低功耗蓝牙为何如此省电?根据SIG官方发布会的资料,它和经典蓝牙技术相比,主要的改变集中体现在待机功耗的减少、高速连接的实现和峰值功率的降低三个方面。   待机功耗的下降   传统蓝牙设备的待机耗电量大一直是为人所 ...…

查看全部问答>