AT32F415 修改时钟和晶振方法(原创)

  1. 简介

我们几乎是国内第一批使用AT32F415芯片的客户,那个时候芯片还没涨价,岁月一切静好。使用AT32F415 做了几个小产品,也在持续出货。后来大家都知道,涨价缺货愈演愈烈。好在我们提前囤了一批,有惊无险的度过了不平凡的一年。言归正传,把最近遇到的总结一下,库版本更新了,从V1.0 到V2.0 ;芯片版本更新了从B版本到C版本;我们主要是修改晶振,默认的都是8Mhz,但是由于封装限制,想用小尺寸的就必须用频率高的,比如12M的;

2、库版本V1.0修改方法:针对V1.0版本库修改方法如下:在static void SetSysClockTo144M(void);这个函数里面修改,RCC->CFG |= (uint32_t)(RCC_CFG_PLLRC_HSE | RCC_CFG_PLLMULT18);

比如都是要144MHz主频,晶体从8M修改到12Mhz,8*18=144Mhz  12*12=144Mhz,因此这句改为:

RCC->CFG |= (uint32_t)(RCC_CFG_PLLRC_HSE | RCC_CFG_PLLMULT12);

添加宏定义:HSE_VALUE=12000000

 

 

3、库版本V2.0 修改方法:

V2.0的库默认开启了 输入时钟/2的功能,因此如果是8Mhz 晶体输出144Mhz 则是8*36/2=144Mhz;如果此时需要修改成12Mhz 则需要 12*24/2=144Mhz;

在void system_clock_config(void)函数中修改;

 修改宏定义:HEXT_VALUE=12000000 ;V2.0库改名字了;

 自此修改晶振就介绍结束,如果想要修改频率也可以修改相应的PLL倍数即可;

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
AT32F415是一款基于ARM Cortex-M4内核的微控制器,其时钟配置涉及到以下几个方面: 1. 内部时钟源的选择:AT32F415可以使用内部的PLL、HSI(高速内部时钟)和LSI(低速内部时钟)作为时钟源。一般来说,PLL是最常用的时钟源,因为它可以提供更高的时钟频率。 2. 外部时钟源的选择:AT32F415还可以使用外部的时钟源,比如晶体振荡器或外部时钟信号。外部时钟源一般用于需要更高精度的应用。 3. 时钟分频器的设置:为了得到所需的时钟频率,需要对时钟信号进行分频。AT32F415提供了多个时钟分频器,可以通过设置分频器的参数来得到所需的时钟频率。 下面是一个简单的示例代码,用于将PLL作为系统时钟源,并将系统时钟频率设置为80MHz: ``` RCC_PLLConfig(RCC_PLLSource_HSI, 8, 240, 2, 5); //配置PLL,时钟源为HSI,输入频率为8MHz,倍频系数为240,分频系数为2,输出频率为240*8/2=960MHz RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //将PLL作为系统时钟源 RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置AHB总线时钟频率为系统时钟频率,即80MHz RCC_PCLK1Config(RCC_HCLK_Div2); //设置APB1总线时钟频率为系统时钟频率的一半,即40MHz RCC_PCLK2Config(RCC_HCLK_Div1); //设置APB2总线时钟频率为系统时钟频率,即80MHz ``` 需要注意的是,在配置时钟之前,需要先使能相应的时钟模块。比如,如果要使用PLL作为时钟源,则需要先使能PLL时钟模块: ``` RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); //等待PLL稳定 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值