历史上的今天
返回首页

历史上的今天

今天是:2025年02月02日(星期日)

2020年02月02日 | STM32F429HAL库时钟系统学习笔记

2020-02-02 来源:eefocus

F4的系统的时钟和F1基本相同,和F1 不同的就是锁相环倍频系数提高,就是系统时钟PLL的时钟频率高达180M(做完电赛控制组,感觉100M以下的单片机以后都不用再学了,图像处理完全做不了)。


HSI:系统内部告诉时钟16M;


HSE:外部高速时钟这里我们一般叫外部晶振正点原子的开发板是25M输入范围是(4-26M)


我们以外部时钟源25M为例外部时钟经过PLL锁仙环(VCO:压控振荡器,这个是电压控制振荡频率的一个元器件没必要深究)


经过*N倍频在/P就得到我们想要的系统时钟频率了


系统时钟=外部晶振/M*N/P;


我们在来看HAL库的配置函数


RCC->CR |= (uint32_t)0x00000001;//写入


使能内部高速时钟 


 /* Reset CFGR register */

  RCC->CFGR = 0x00000000;

复位配置寄存器


  /* Reset HSEON, CSSON and PLLON bits */

  RCC->CR &= (uint32_t)0xFEF6FFFF;



  /* Reset PLLCFGR register */

  RCC->PLLCFGR = 0x24003010;



  /* Reset HSEBYP bit */

  RCC->CR &= (uint32_t)0xFFFBFFFF;



  /* Disable all interrupts */

  RCC->CIR = 0x00000000;


复位了全部的时钟配置默认开起了HSI系统内部高速时钟


所以我们要自己配置时钟函数程序如下


Stm32_Clock_Init(360,25,2,8); //时钟主频180M 


void Stm32_Clock_Init(u32 plln,u32 pllm,u32 pllp,u32 pllq)

{


    HAL_StatusTypeDef ret = HAL_OK;

    RCC_OscInitTypeDef RCC_OscInitStructure; 

    RCC_ClkInitTypeDef RCC_ClkInitStructure;

    

    __HAL_RCC_PWR_CLK_ENABLE(); //使能PWR时钟这点我没有深究大概是时钟电源使能

    

    //下面这个设置用来设置调压器输出电压级别,以便在器件未以最大频率工作

    //时使性能与功耗实现平衡,此功能只有STM32F42xx和STM32F43xx器件有,

    __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//设置调压器输出电压级别1

    

    RCC_OscInitStructure.OscillatorType=RCC_OSCILLATORTYPE_HSE;    //时钟源为HSE

    RCC_OscInitStructure.HSEState=RCC_HSE_ON;                      //打开HSE

    RCC_OscInitStructure.PLL.PLLState=RCC_PLL_ON;//打开PLL

    RCC_OscInitStructure.PLL.PLLSource=RCC_PLLSOURCE_HSE;//PLL时钟源选择HSE

    RCC_OscInitStructure.PLL.PLLM=pllm; //主PLL和音频PLL分频系数(PLL之前的分频),取值范围:2~63.

    RCC_OscInitStructure.PLL.PLLN=plln; //主PLL倍频系数(PLL倍频),取值范围:64~432.  

    RCC_OscInitStructure.PLL.PLLP=pllp; //系统时钟的主PLL分频系数(PLL之后的分频),取值范围:2,4,6,8.(仅限这4个值!)

    RCC_OscInitStructure.PLL.PLLQ=pllq; //USB/SDIO/随机数产生器等的主PLL分频系数(PLL之后的分频),取值范围:2~15.

    ret=HAL_RCC_OscConfig(&RCC_OscInitStructure);//初始化


    if(ret!=HAL_OK) while(1);

    

    ret=HAL_PWREx_EnableOverDrive(); //开启Over-Driver功能

    if(ret!=HAL_OK) while(1);

    

    //选中PLL作为系统时钟源并且配置HCLK,PCLK1和PCLK2

    RCC_ClkInitStructure.ClockType=(RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2);

    RCC_ClkInitStructure.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;//设置系统时钟时钟源为PLL

    RCC_ClkInitStructure.AHBCLKDivider=RCC_SYSCLK_DIV1;//AHB分频系数为1

    RCC_ClkInitStructure.APB1CLKDivider=RCC_HCLK_DIV4; //APB1分频系数为4

    RCC_ClkInitStructure.APB2CLKDivider=RCC_HCLK_DIV2; //APB2分频系数为2

    ret=HAL_RCC_ClockConfig(&RCC_ClkInitStructure,FLASH_LATENCY_5);//同时设置FLASH延时周期为5WS,也就是6个CPU周期。


    if(ret!=HAL_OK) while(1);


}


这个程序就直接配置了我们时钟APB1 80M和APB2 40M的时钟配置


初始化配置就完成了,我们以后想要超频也可以在这里修改,以后我会超频做一些功能超频稳定性测试。

推荐阅读

史海拾趣

Diamond SA公司的发展小趣事

随着全球对环保和可持续发展的关注度不断提高,Diamond SA公司也积极响应这一趋势。他们致力于开发环保型电子产品和技术解决方案,减少对环境的影响。同时,公司还积极参与各种环保活动和公益事业,推动整个电子行业的绿色发展。这些努力不仅提升了公司的社会形象和声誉,也为公司的长期发展奠定了坚实的基础。

DSP Group Inc公司的发展小趣事

随着技术的不断进步和市场需求的增长,DSP Group开始将业务扩展到半导体领域。公司推出了一系列高性能、低功耗的DSP芯片,广泛应用于移动通信、智能家居、汽车电子等领域。这一举措不仅进一步巩固了DSP Group在DSP领域的领先地位,还为公司带来了可观的收益和市场份额。

Elektron公司的发展小趣事

随着业务的不断拓展和市场的不断扩大,Elektron公司逐渐将目光投向了全球市场。公司在全球范围内设立了多个代表处和分支机构,与当地的合作伙伴建立了紧密的合作关系。通过全球化战略的实施,Elektron成功进入了焊接设备、等离子切割设备和电池服务设备的高端市场,并成为了世界市场的领导者之一。

Diconex公司的发展小趣事

在电子行业的激烈竞争中,Diconex公司凭借其卓越的技术创新能力脱颖而出。公司成立之初,便专注于研发高性能、低能耗的半导体芯片。通过不断的研发投入和团队努力,Diconex成功推出了一系列具有行业领先水平的产品,赢得了客户的广泛认可。随着技术的不断升级和市场需求的不断增长,Diconex逐渐在电子行业占据了一席之地。

硕颉(BITEK)公司的发展小趣事

尽管硕颉科技在知识产权方面做出了积极努力,但仍难免面临专利诉讼的挑战。在某次与凹凸科技的专利侵权诉讼中,公司虽然一度面临败诉和永久禁制令的风险,但硕颉科技迅速应诉,积极应对。最终,美国联邦巡回上诉法院废除了原判决,公司得以自由销售被诉产品,不受任何限制。这次诉讼的胜利,不仅展示了硕颉科技在应对法律挑战方面的决心和能力,也为公司的长远发展奠定了坚实基础。

Filtran Ltd公司的发展小趣事

近年来,随着5G、物联网等技术的快速发展,电子行业面临着前所未有的挑战和机遇。Filtran Ltd深知唯有不断创新才能保持竞争力。公司加大了在研发方面的投入,建立了多个专项研究小组,专注于新技术、新材料和新工艺的探索。通过持续创新,Filtran Ltd成功推出了多款符合市场需求的新产品,进一步巩固了其在电子行业中的地位。同时,公司还积极拥抱数字化转型,利用大数据、人工智能等先进技术提升运营效率和服务水平。

问答坊 | AI 解惑

ARM Corte-M3内核微控制器快速入门与应用

[ 本帖最后由 小瑞 于 2009-12-1 09:27 编辑 ]…

查看全部问答>

为什么地址总结长度是8的倍数,例如8位,16位,32位,64位这些都是8的位数?为什么一个字节要等于8个 比特??

为什么地址总结长度是8的倍数,例如8位,16位,32位,64位这些都是8的位数?为什么一个字节要等于8个 比特??…

查看全部问答>

EEWORLD联系贴

          大家好,我有个建议一直想说,又担心大家分歧太大,一直没说,不过思来想去,还是说出来让大家分析一下是否可行,众人拾材火焰高吗,         & ...…

查看全部问答>

请教,如何求两个周期脉冲的时间差

有两个周期脉冲信号a和b,a的频率为1Hz,b频率为100Hz,a与b没有同步关系,现在要求a上升沿到a上升沿之后的第一个b上升沿的时间差,可以借助时钟信号clk--20MHz…

查看全部问答>

ATMEGA以太网

ATmega128+RTL8019开发板…

查看全部问答>

机房监控

机房监控机房监控JCD-PSMS8.0监控项目:1、供配电监控市电输入交流监控三相电压、电流、有关功率、功率因数等;以及对配电柜内8个开关进行监控,可查看所监测配电 线路的参数。相应的参数应存有历史曲线,可查看该参数的历史曲线,可通过IE浏览器 ...…

查看全部问答>

这个是什么情况??

我的信息肿么变成这样了?好久就注册了啊?…

查看全部问答>

【加工方法】DIY之非金属材料的加工方法讨论—开始动手

        【原创内容,转帖请注明https://bbs.eeworld.com.cn】         设计工作完成后我们开始动手加工,加工零件时候一定要注意自身安全,不要让工具伤到自己。    &nb ...…

查看全部问答>

关于MSP430F5529的电子钟

求助各位高手,我要设计一个基于MSP430F5529的电子时钟,这样可以实现时钟关机后(有电源)一直在工作,开机后时间依然正确啊?请各位高手帮助~ …

查看全部问答>

atmega8的PC6口设置为I/O后无法烧写,求大神指点!

atmega8的PC6口设置为I/O后无法烧写,求大神指点! …

查看全部问答>