历史上的今天
返回首页

历史上的今天

今天是:2025年08月21日(星期四)

正在发生

2018年08月21日 | STM32使用非8M晶振时如何修改代码

2018-08-21 来源:eefocus

目前能找到的大部分代码都是默认8M外部晶振的,若使用的晶振不是8M则需要作一些修改。例如这次我使用的外部晶振是12M的,作如下修改。


    1.首先需要修改"Option for target 'xxx'"中的Target -> Xtal(Mhz)处的值(改为12MHz)。此处修改影响Debug时观察到的时钟数值。


    2.在system_stm32f10x.c开头的注释里有:


      * 4. The default value of HSE crystal is set to 8 MHz (or 25 MHz, depedning on

      *    the product used), refer to "HSE_VALUE" define in "stm32f10x.h" file. 

      *    When HSE is used as system clock source, directly or through PLL, and you

      *    are using different crystal you have to adapt the HSE value to your own

      *    configuration.

       根据描述,将stm32f10x.h中大约在0121行找到,修改掉。



    #if !defined  HSE_VALUE

    #ifdef STM32F10X_CL   

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

    #else 

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

    #endif /* STM32F10X_CL */

    #endif /* HSE_VALUE */


    不过很奇怪的是,即使修改了此处的值,PLL的时钟还是不正确(程序依旧讲PLL按9倍频配置)。此处有待进一步探究(目前暂时只知道编译的代码没有用到HSE_VALUE)。


 


    3.顺着代码寻找原因,最后发现真正起作用的部分在system_stm32f10x.c里的SetSysClockTo72(void)函数(0993行,这里假设我们希望MCU工作在72MHZ)。


        在1058行有这样一段代码:


#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_PLLMULL9改为RCC_CFGR_PLLMULL6。


推荐阅读

史海拾趣

Fujitsu America公司的发展小趣事

在计算机技术发展的早期阶段,Fujitsu就展现出了强大的研发实力。1954年,Fujitsu成功研制出日本第一台电脑FACOM 100,这一里程碑式的成就不仅标志着Fujitsu在计算机领域的正式起步,也为其后续在ICT领域的发展奠定了坚实基础。Fujitsu America作为Fujitsu在全球的重要分支机构,积极将这一创新成果引入北美市场,推动了当地计算机技术的普及和应用。

HM International公司的发展小趣事

在物联网(IoT)和智能制造领域,Fujitsu America也展现出了卓越的创新能力和市场洞察力。公司通过与PTC等合作伙伴的紧密合作,将物联网技术和智能制造技术相结合,推出了一系列面向制造业的智慧工厂解决方案。这些解决方案不仅提高了生产效率和产品质量,还降低了生产成本和能源消耗,为制造业的数字化转型和可持续发展提供了有力支持。Fujitsu America的智慧工厂解决方案在北美市场得到了广泛应用和认可,为公司赢得了良好的市场口碑和品牌形象。

Crameda Intersys公司的发展小趣事

作为一家有社会责任感的企业,Crameda Intersys公司不仅关注自身的经济效益,还积极履行社会责任。公司积极参与公益事业,支持教育、环保等领域的发展。同时,公司还注重环保和可持续发展,通过采用环保材料和节能技术,降低生产过程中的能耗和排放。这些举措不仅提升了公司的社会形象,也为社会的可持续发展做出了积极贡献。

这五个故事只是Crameda Intersys公司发展历程中的一部分,但它们足以展现出公司在电子行业中的成长轨迹和不懈追求。在未来的发展中,Crameda Intersys公司将继续以技术创新为引领,积极拓展市场渠道,培养更多优秀人才,加强质量管理和社会责任履行,为电子行业的发展贡献更多的力量。

安谱隆(Ampleon)公司的发展小趣事

在恩智浦剥离射频业务后,安谱隆迅速吸引了资本市场的关注。建广资产成功竞标,以18亿美元(约116.82亿元人民币)的价格收购了安谱隆。这一交易不仅显示了建广资产对安谱隆技术实力和市场潜力的认可,也为安谱隆未来的发展注入了新的动力。在建广资产的支持下,安谱隆开始了其独立发展的新篇章。

AdaptivEnergy公司的发展小趣事

2022年,无锡锡产微芯半导体有限公司完成了对安谱隆的收购。这一交易金额超过百亿元,是当年中国最大的半导体并购交易事件之一。锡产微芯的收购不仅为安谱隆提供了更广阔的发展平台,也为其在半导体行业中的进一步发展注入了新的活力。在锡产微芯的支持下,安谱隆开启了新的发展阶段,继续在全球射频市场中发挥着重要作用。

这五个故事展示了安谱隆从恩智浦剥离出来到被锡产微芯收购的发展历程。在这个过程中,安谱隆不仅展现了其强大的技术实力和市场潜力,也经历了资本市场的波折与挑战。然而,正是这些经历使得安谱隆更加成熟和稳健,为其未来的发展奠定了坚实的基础。

Dawning Precision Co Ltd公司的发展小趣事

在快速发展的过程中,Dawning意识到企业文化的重要性。公司注重培养员工的团队合作精神和创新能力,定期组织各种团建活动和文化交流活动。同时,Dawning还倡导“以人为本”的管理理念,关注员工的成长和发展,为员工提供良好的职业发展平台。这些举措的实施,使得Dawning的员工队伍更加团结、稳定和有活力,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

绝对有用的单片机读写U盘开发资料

绝对有用用单芯片读写U盘方案设计资料  仅供分享和参考!…

查看全部问答>

指针不完全手册

1、 指针与变量 定义一个变量,再定义一个指向该变量类型的指针,把该变量的地址赋给此指针,然后通过此指针访问该变量,教科书上都是这样说的,但恐怕没有人这样用,因为还不如直接访问变量名直截了当。问题是为什么这两种方法都可以访问那个特 ...…

查看全部问答>

ccd

我需要测光点大小,想要ccd采集,单片机处理,有哥们玩过没,指点下。。。。…

查看全部问答>

2.4G无线智能灯控方案

2.4G无线智能灯控方案 一,        方案概述 本方案解决家庭、小区智能灯光控制。针对日渐繁多的室内灯光种类,以及开关连线复杂的状况,采用无线控制灯光,实现灯光情景模式设定以及开关位置灵活摆放。ZG1100采用串口与上位 ...…

查看全部问答>

请教一个LCD中断的问题

我现在在LPC2478开发板下外部FLASH跑LCD程序,仿真放在中断处,发现一个奇怪的问题。     如果进了中断,LCD_INISTAT的bit[1]一直是1;     如果我在内部flash跑,LCD_INTSTAT的bit[1]就不为1,为0。     内部fl ...…

查看全部问答>

基于蓝牙应用的嵌入式开发板选型问题

想做个基于蓝牙应用的嵌入式项目,想法是 开发板+单独蓝牙模块,操作系统用linux,因为对硬件不熟悉,不知道选择那个平台的什么型号的开发板,恳请赐教,谢谢~~~…

查看全部问答>

LM3s8962体验之二----------- Keil µVision 4 目标工具选项详解

一、目标工具选项(Target Options …) µVision可以设置目标硬件的选项。通过下图1中的工具栏2区域按钮或1区域菜单项Project -> Options for Target打开Options for Target对话框。         & ...…

查看全部问答>

iPod + AM/FM + 闹钟 +显示(LCD && LED) 方案

iPod + AM/FM + 闹钟 +显示(LCD &&  LED) 方案 a: MCU特性    单芯片,内置4X24 LCD驱动, RTC(实时时钟),LED驱动,,低功耗,电池供电维持时间和LCD时间显示. 采用   dice 工艺, 成本更低. 无需外加 RTC 如1381等, LCD驱 ...…

查看全部问答>

关于PCB的机械层和禁止布线层的问题

    小弟新手,在画PCB的时候碰到一些问题,我们设定板子边框的时候本来应该用机械层的,   但是很多时候我们用禁止布线层也可以,原因是因为PCB厂家知道我们的意思。       假设我们想在板子中间开一 ...…

查看全部问答>