历史上的今天
返回首页

历史上的今天

今天是:2024年12月26日(星期四)

正在发生

2018年12月26日 | STM32中通过固件库自己编写系统时钟配置文件

2018-12-26 来源:eefocus

使用HSE配置系统时钟

因为STM工程使用固件库,进入main函数时都已配置好时钟,所以我们自己编写时钟配置文件首先需要复位RCC寄存器!

使能HSE

判断HSE是否启动成功

使能预取指

设置FLASH等待周期

配置3条总线的倍频因子

配置锁相环,使能锁相环

等待锁相环稳定

选择锁相环输出为系统时钟,并等待其稳定

void HSE_sysclock_config( uint32_t  RCC_PLLMul_x )

{

    //先复位RCC寄存器

    RCC_DeInit();


    /*使用HSE配置系统时钟*/


    //使能HSE

    RCC_HSEConfig( RCC_HSE_ON );


    //检测HSE是否启动成功

    if ( SUCCESS == RCC_WaitForHSEStartUp() )

    {

        //使能预取指,这是FLASH固件中的函数

        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);


        //设置FLASH等待周期。  因为倍频成72M 所以等待两个周期。

        FLASH_SetLatency(FLASH_Latency_2);  


        //配置三个总线的倍频因子

        //HCLK --> AHB 最大为72M,所以只需要1分频

        RCC_HCLKConfig(RCC_SYSCLK_Div1);

        //PCLK1 --> APB1 最大为36M,所以要2分频

    RCC_PCLK1Config(RCC_HCLK_Div2);

        //PCLK2 --> APB2 最大为72M,所以只需要1分频

    RCC_PCLK2Config(RCC_HCLK_Div1);


        //先配置锁相环 PLLCLK = HSE * 倍频因子

        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_x);


        //使能PLL

        RCC_PLLCmd(ENABLE);


        //等待PLL稳定

        while ( RESET == RCC_GetFlagStatus(RCC_FLAG_PLLRDY) );


        //选择系统时钟(选择锁相环输出)

        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

        //等待选择稳定

        while ( 0x08 != RCC_GetSYSCLKSource() );

    }

    else

    {

        //HSE启动失败,用户自己编写补救措施

    }


}



使用HSI配置系统时钟

因为STM工程使用固件库,进入main函数时都已配置好时钟,所以我们自己编写时钟配置文件首先需要复位RCC寄存器!

使能HSI

判断HSI是否启动成功

使能预取指

设置FLASH等待周期

配置3条总线的倍频因子

配置锁相环,使能锁相环

等待锁相环稳定

选择锁相环输出为系统时钟,并等待其稳定

void HSI_sysclock_config( uint32_t  RCC_PLLMul_x )

{

    __IO uint32_t HSIStatus = 0;


    //先复位RCC寄存器

    RCC_DeInit();


    /*使用HSI配置系统时钟*/


    //使能HSI

    RCC_HSICmd(ENABLE);


    //检测HSE是否启动成功

    HSIStatus = RCC->CR & RCC_CR_HSIRDY;

    if ( RCC_CR_HSIRDY == HSIStatus )

    {

        //使能预取指,这是FLASH固件中的函数

        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);


        //设置FLASH等待周期。  因为倍频成72M 所以等待两个周期。

        FLASH_SetLatency(FLASH_Latency_2);  


        //配置三个总线的倍频因子

        //HCLK --> AHB 最大为72M,所以只需要1分频

        RCC_HCLKConfig(RCC_SYSCLK_Div1);

        //PCLK1 --> APB1 最大为36M,所以要2分频

    RCC_PCLK1Config(RCC_HCLK_Div2);

        //PCLK2 --> APB2 最大为72M,所以只需要1分频

    RCC_PCLK2Config(RCC_HCLK_Div1);


        //先配置锁相环 PLLCLK = HSE * 倍频因子

        RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_x);


        //使能PLL

        RCC_PLLCmd(ENABLE);


        //等待PLL稳定

        while ( RESET == RCC_GetFlagStatus(RCC_FLAG_PLLRDY) );


        //选择系统时钟(选择锁相环输出)

        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

        //等待选择稳定

        while ( 0x08 != RCC_GetSYSCLKSource() );

    }

    else

    {

        //HSI启动失败,用户自己编写补救措施

    }


}

推荐阅读

史海拾趣

Genesis Microchip公司的发展小趣事

随着第二次世界大战的爆发,全球对国防电子产品的需求激增。GI凭借其在电子技术领域的深厚积累,迅速调整战略方向,积极投身于国防电子产品的研发与生产。公司开发的潜水艇探测设备和其他关键国防电子产品在战争中发挥了重要作用,赢得了军方的高度认可。这一阶段的成功不仅为GI带来了丰厚的利润,也极大地提升了公司在电子行业中的知名度和地位。

CWIND公司的发展小趣事

在国内市场取得一定成绩后,CWIND公司开始将目光投向国际市场。公司高层制定了一系列国际化战略,包括加强与国际知名企业的合作、参加国际电子展会等。通过与国外企业的技术交流与合作,CWIND不仅提升了自身的技术水平,还成功打入了国际市场。在国际市场上,CWIND凭借其优质的产品和服务,逐渐赢得了消费者的信任和认可。

台湾三礼(3L)公司的发展小趣事

进入21世纪,随着全球电子产业的快速发展,三礼公司看到了中国内地市场的巨大潜力。2006年,公司决定扩大在中国内地的生产规模,投资建构了40,000平方米的厂房,并成立了专业客制化产品厂——和瑞电子(3LQ)。这一举措不仅提升了公司的生产能力,还使得产品更加符合市场需求,进一步巩固了公司的市场地位。

飞翼科技(FEIYI)公司的发展小趣事

近年来,随着环保意识的提升和绿色能源的普及,三礼公司也积极投身于绿色生产领域。2019年,公司在广西南宁开始建设新厂,预定投资3亿元人民币用于厂房及自动化设备的建设。新厂总建筑面积达70,000平方米,将成为公司目前所有生产基地中规模最大的一个。同时,公司还计划全面架设太阳能发电系统,目标是在未来三年内承担公司总需求电量的30%。这一举措不仅有助于降低公司的生产成本,还体现了公司对环保事业的积极贡献。

这五个故事只是三礼公司发展历程中的一部分缩影,但它们却生动地展现了公司在电子行业中的成长轨迹和不懈努力。从北美市场的拓展到中国内地生产能力的扩大,再到技术突破和新产品开发,三礼公司始终保持着敏锐的市场洞察力和强大的创新能力。同时,公司还积极投身于绿色生产领域,为推动电子行业的可持续发展做出了积极贡献。

BB公司的发展小趣事

在电子行业竞争日益激烈的背景下,BB公司深知技术创新是企业发展的核心动力。因此,公司投入大量研发资金,积极引进和培养人才,不断推动技术创新。经过多年的努力,BB公司在模拟集成电路领域取得了多项重大突破,推出了一系列具有自主知识产权的创新产品。这些产品不仅提升了BB公司的市场竞争力,也为整个电子行业的发展做出了贡献。

FILTRONIC公司的发展小趣事

在快速发展的同时,FILTRONIC始终将品质管理和客户服务放在首位。公司建立了完善的质量管理体系和客户服务体系,从原材料采购、生产制造到产品检测、售后服务等各个环节都严格把关。同时,FILTRONIC还积极倾听客户需求,不断优化产品和服务,以满足客户不断变化的需求。这些努力使得FILTRONIC在客户中树立了良好的口碑和品牌形象。

问答坊 | AI 解惑

LED工艺技术介绍

LED工艺技术介绍     在最近几年,LED的技术取得重大进展,并因其价格和结构方面的广阔发展空间,使得它能够向传统的光源发起挑战,因此也成为照明行业的一个热点。鉴于 LED工艺技术与传统的制灯工艺技术显著不同,因此本刊根据国内外的 ...…

查看全部问答>

单片开关电源

有谁用过NCP1000系列单片开关电源?我今天看了资料。有几个问题。 1.反馈绕组的电压和电流该如何确定? 2.资料给的应用(图3) 设计变压器T时该提供哪些参数? 附资料…

查看全部问答>

云计算vs中国实情(zz)

现在看到网络中提出了一个很新的概念,云计算,简单看了一下,以一个很通俗化的比喻能够说明这个概念。就是中心相当于发电厂,每个用户相当于家庭用户,可以直接使用电厂发出来的电,而不需要自己去建立发电厂发电,然后自己才能用上电。从理想状态 ...…

查看全部问答>

如何用Altera的Cyclone III系列的FPGA实现具有拍照功能的数码相框?

急急急急急急!!!!        最近在科技创新基地学FPGA,老师安排的任务做出一个作品,我们答辩时说做一个具有拍照功能的数码相框,但是 觉得无从下手,相切合的资料也找的很少,特向大虾请教!!!7月我们就要交 ...…

查看全部问答>

如何美化windows mobile程序的界面

做了个简单的demo 功能都实现了 就一个字 丑 ………

查看全部问答>

WINCE下驱动项目外包

现有两个WINCE下驱动项目外包: 1、S3C2416下驱动16C554多串口芯片的驱动程序 2、S3C2416的声音驱动(芯片的驱动代码有2442平台下的可以做参考) 有意者请加QQ嵌入式外包群:48348107 谢谢各位!…

查看全部问答>

这里挺好

想学点东西找到了地方了…

查看全部问答>

谁用过TW9910A这块视频解码芯片啊?里面的SFR该怎么配置啊?读数据手册,整了老半天,从CAMERA接口还是看不到图像!好抑闷!

谁用过TW9910A这块视频解码芯片啊?里面的SFR该怎么配置啊?读数据手册,整了老半天,从CAMERA接口还是看不到图像!好抑闷!…

查看全部问答>

桥式起重机起升电机电缆线径的选择

求助各位大侠,现有一台起重机,380V,50HZ电源供电, 起升电机是两台375KW的电机,型号是YZR500M-8.额定电流746A,转子电流406A,转子电压550V,用可控硅定子调压装置进行调速(一拖二控制).请问从定子调压装置到电机定子需要多大的电缆?电阻器到转子的电 ...…

查看全部问答>