历史上的今天
返回首页

历史上的今天

今天是:2024年08月24日(星期六)

2019年08月24日 | 【STM32F103攻城笔记】内部晶振HSI倍频设置系统时钟

2019-08-24 来源:eefocus

首先说明,因为STM32芯片的型号不同,所以对于不同芯片有不同频率的限制,比如某些时钟频率不能大于多少,这是根据手册来设置的!但改变频率的寄存器都一样,只是我们设置频率大小要受芯片的限制!下面我用的芯片型号是STM32F103VBT6!它就限制了内部晶振的倍频不能大于64MHz(但其实我实验出来是52MHz)!


本文是利用内部晶振(HSI)来倍频,与外部晶振倍频区分开!


第一步:打开system_STM32f10x.c,找到函数void SystemInit (void){},把原有的都注释掉,将下面的代码复制进去:


                 /* 开启HSI 即内部晶振时钟 */

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


/*选择HSI为PLL的时钟源HSI必须2分频给PLL*/

RCC->CFGR |= (uint32_t)RCC_CFGR_PLLSRC_HSI_Div2; 


         

/*PLLCLK=8/2*13=52MHz   设置倍频得到时钟源PLL的频率*/

RCC->CFGR |= (uint32_t)RCC_CFGR_PLLMULL13;


/* PLL不分频输出  */

RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;

 

/* 使能 PLL时钟 */

RCC->CR |= RCC_CR_PLLON;


/* 等待PLL时钟就绪*/

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

{

}



/* 选择PLL为系统时钟的时钟源 */

RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));

RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    


/* 等到PLL成为系统时钟的时钟源*/

while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)

{


                }


这段代码其实就是是HSI倍频成为PLL的时钟源,又使PLL成为系统时钟的时钟源,这样就相当于HSI倍频后给系统时钟了!




最后我用一个库函数RCC_GetClocksFreq() 它是用来获取各个时钟的频率的!他要先初始化,就在开始前利用RCC_ClocksTypeDef 来使他初始化,我们代码是RCC_ClocksTypeDef  RCC_Clocks,这样RCC_Clocks.SYSCLK_Frequency就是系统时钟的频率了!我们串口输出就可以了!

主函数代码:


int main (void)

{

       RCC_ClocksTypeDef  RCC_Clocks; //初始化



       SystemInit(); //调用刚才改过的函数



NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

Usart_Init(115200); //串口为了看数据而已


RCC_GetClocksFreq(&RCC_Clocks); //获取各个时钟频率



while(1)

{

printf("SYSCLK_Frequency %d rn",RCC_Clocks.SYSCLK_Frequency);

//printf("SYSCLK_Frequency %d rn",RCC_Clocks.SYSCLK_Frequency);

}


}




串口显示:(我的实验利用内部晶振最高只能倍频到52MHz)


推荐阅读

史海拾趣

Collins Electronics Corp公司的发展小趣事

随着科技的飞速发展,Collins Electronics Corp意识到技术创新是企业持续发展的关键。他们投入大量资源进行研发,推出了一系列具有创新技术的电子产品。其中,他们开发的一款新型高频无线电收发器,因其传输速度快、信号稳定而广受好评。这项技术不仅为公司带来了可观的利润,还推动了整个电子行业的技术进步。

High Voltage Semiconductor Inc公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,美高测始终保持着对技术创新的执着追求。公司不断投入研发资源,探索新的测试技术和应用场景,如微电网、新能源汽车等领域的高压半导体测试。同时,美高测还积极构建开放式的创新生态体系,与众多合作伙伴共同推动行业的进步和发展。通过这些努力,美高测在高压半导体测试领域持续保持着领先地位,为电子行业的未来发展贡献着重要力量。

Datalinear公司的发展小趣事

Datalinear公司成立于20世纪初,由一群热衷于数据处理的工程师创立。初创时期,公司面临着资金短缺、技术瓶颈和市场竞争激烈的挑战。然而,创始人凭借着对技术的执着和对市场的敏锐洞察力,成功开发出一款高效的数据处理设备,满足了当时市场对数据处理速度的需求。这款产品迅速在市场上打开销路,为Datalinear公司赢得了第一桶金。

谷峰(GOFORD)公司的发展小趣事

随着产品线的不断丰富和技术实力的日益增强,GStek开始积极拓展国内外市场。公司采取多元化的市场策略,针对不同客户群体提供定制化的解决方案。同时,GStek还注重品牌建设,通过参加各类行业展会、举办技术研讨会等方式,加强与业界的交流与合作,提升品牌知名度和影响力。这些努力使得GStek的产品广泛应用于各类电子产品中,包括智能手机、平板电脑、笔记本电脑等移动设备以及家电、工控等领域。

FTCAP Fischer & Tausche Capacitor Group公司的发展小趣事

为了进一步提升市场竞争力,GStek积极寻求与产业链上下游企业的战略合作。公司与知名功率元件供应商NIKO-SEM微电子集团建立了长期稳定的合作关系,共同推动电源管理技术的创新与发展。此外,GStek还积极整合产业链资源,优化供应链管理,确保产品质量的稳定性和供货的及时性。这些措施不仅提升了GStek的综合竞争力,也为其未来的发展奠定了坚实的基础。

华润华晶公司的发展小趣事

面对电子行业快速变化的市场环境和日益激烈的竞争态势,GStek始终保持清醒的头脑和敏锐的洞察力。公司密切关注行业动态和技术发展趋势,及时调整战略方向和产品布局。同时,GStek还注重内部管理和团队建设,不断提升员工的综合素质和专业技能。这些努力使得GStek能够在复杂多变的市场环境中保持稳健的发展态势,为实现其成为全球主要电源管理IC设计公司的愿景而不断努力。

问答坊 | AI 解惑

CNTTR通信电子培训资料

资料介绍: 通信电源勘察、设计培训 http://www.cndzz.com/user/show/1408.htm…

查看全部问答>

嵌入式,累死你没商量

 做了一段时间嵌入式,发现自己憔悴了很多   又研究硬件,看电路图,DATASHEET,又要搞代码,方案公司的代码长的不得了,有时候真想一头装死,还是舍不得。。。   真的太累啊[ …

查看全部问答>

运算放大器使用注意事项

详细的说明了运算放大器使用的注意事项…

查看全部问答>

wince5.0是否支持SNMP

问题如标题。我需要用应用程序实现一个简单的客户端,需要调用winsnmp的API。但是我发现wince下打不开winsnmp.h头文件。有人在这下面用过吗?…

查看全部问答>

在keilc51中我用c语言要写个精确的时间,怎么写?(不可以用中断)

在keilc51中我用c语言要写个精确的时间,怎么写?(不可以用中断) 如:12MHz晶振 void dalay() {   uchar i,j,k;     for(i=0;i…

查看全部问答>

dsp builder7.2中altbus没有Node Type选项是怎么回事?给点思路就给分!

我装的是matlab r2007a   quartus 7.2  dspbuilder 7.2   使用dspbuilder 时发现altbusaltbus没有Node Type选项,请问是怎么回事? 如果版本错了,问哪个版本合适,最好给个链接,不胜感激!…

查看全部问答>

有没有视频处理芯片的高手。

需要开发如下项目: 基本需求: 使用视频处理芯片处理两个信号: 其一,由摄像头获得的实时视频(模拟或数字信号) 其二,某一个预制好的两色BMP文件(黑白)。 将1和2叠加,叠加方法为将黑色部分保留,白色部分设置成透明的 白色地方就可以 ...…

查看全部问答>

怎样在89C51 P0 口加入上拉电阻

问题1.怎样在89C51 P0 口加入外部上拉装置,具体接法是怎样的?           2.请大家解释P1口内部上拉电阻和P0口没内部上拉电阻在单片机控制输出、输入应用的差别, 到底在接入负载如数码管的控制有何差别?? 书本的 ...…

查看全部问答>

能一眼看出来这是什么吗

猜猜看,这是什么?         这个带有法拉利标志的头盔,实际上是一款咖啡机。将头盔的护目镜打开,就可以看到隐藏在其中的咖啡操作台。为了起到更好的装饰作用和隐蔽效果,咖啡机的操作按钮都隐藏在滑片之后。您可以将它 ...…

查看全部问答>

用事实说话:看看ADC性能

                                 采集4个通道,第0和第3通道未加交流量,第1和第2通道加2A电流(满量程100A)…

查看全部问答>