历史上的今天
返回首页

历史上的今天

今天是:2024年10月09日(星期三)

正在发生

2019年10月09日 | STM32F030 使用内部时钟和外部时钟

2019-10-09 来源:eefocus

static void SetSysClock(void)

{

  __IO uint32_t StartUpCounter = 0, HSEStatus = 0;

  

  /* SYSCLK, HCLK, PCLK configuration ----------------------------------------*/

#if defined (PLL_SOURCE_HSI)

  /* At this stage the HSI is already enabled */

 

  /* Enable Prefetch Buffer and set Flash Latency */

  FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;

 

  /* HCLK = SYSCLK */

  RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;

      

  /* PCLK = HCLK */

  RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1;

 

  /* PLL configuration = (HSI/2) * 12 = ~48 MHz */

  RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));

  RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL12);

            

  /* Enable PLL */

  RCC->CR |= RCC_CR_PLLON;

 

  /* Wait till PLL is ready */

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

  {

  }

 

  /* Select PLL as system clock source */

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

  RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    

 

  /* Wait till PLL is used as system clock source */

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

  {

  }

#else

 #if defined (PLL_SOURCE_HSE)

  /* Enable HSE */    

  RCC->CR |= ((uint32_t)RCC_CR_HSEON);

 #elif defined (PLL_SOURCE_HSE_BYPASS)

  /* HSE oscillator bypassed with external clock */    

  RCC->CR |= (uint32_t)(RCC_CR_HSEON | RCC_CR_HSEBYP);

 #endif /* PLL_SOURCE_HSE */

   

  /* Wait till HSE is ready and if Time out is reached exit */

  do

  {

    HSEStatus = RCC->CR & RCC_CR_HSERDY;

    StartUpCounter++;  

  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

 

  if ((RCC->CR & RCC_CR_HSERDY) != RESET)

  {

    HSEStatus = (uint32_t)0x01;

  }

  else

  {

    HSEStatus = (uint32_t)0x00;

  }  

 

  if (HSEStatus == (uint32_t)0x01)

  {

    /* Enable Prefetch Buffer and set Flash Latency */

    FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;

 

    /* HCLK = SYSCLK */

    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;

      

    /* PCLK = HCLK */

    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1;

 

    /* PLL configuration = HSE * 6 = 48 MHz */

    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));

    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL6);

            

    /* Enable PLL */

    RCC->CR |= RCC_CR_PLLON;

 

    /* Wait till PLL is ready */

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

    {

    }

 

    /* Select PLL as system clock source */

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

    RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    

 

    /* Wait till PLL is used as system clock source */

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

    {

    }

  }

  else

  { /* If HSE fails to start-up, the application will have wrong clock 

         configuration. User can add here some code to deal with this error */

  }  

#endif /* PLL_SOURCE_HSI */  

}


推荐阅读

史海拾趣

BUSSMANN公司的发展小趣事

1985年,库柏工业收购了Bussmann公司,成立了新的事业部——“Cooper Bussmann熔断器”。这一收购为Bussmann带来了更广阔的市场和更多的资源,同时也带来了新的挑战和机遇。在库柏工业的支持下,Bussmann开始了更加积极的创新和市场拓展,逐渐成为了全球熔断器行业的领导者。

上海国芯(Gcore)公司的发展小趣事
在保证性能的前提下,选用性价比更高的元件和设计方案来降低成本。
Carling Technologies公司的发展小趣事

随着技术的不断进步和市场需求的多样化,Carling Technologies开始扩展其产品线,涵盖了液压磁热断路器、电子控制以及配电装置等多个领域。同时,公司也积极开拓全球市场,通过设立海外办事处和与当地企业合作,将产品销往世界各地。这一阶段的发展使得Carling Technologies成为了全球电气和电子开关领域的领先制造商之一。

Harbour Industries公司的发展小趣事

背景:近年来,随着环保意识的提高和可持续发展理念的普及,电子行业也开始向绿色化、低碳化方向发展。Handok积极响应这一趋势,将绿色可持续发展作为公司的重要战略之一。

发展:Handok加大了对环保技术的研发投入,推出了一系列绿色电子产品和解决方案。同时,公司还优化了生产流程和管理体系,实现了资源的高效利用和废弃物的减量化处理。

影响:Handok的绿色可持续发展战略不仅赢得了市场的广泛认可,还为公司树立了良好的社会形象。此外,这一战略还有助于公司在未来更加激烈的市场竞争中保持领先地位。

Amperite Co公司的发展小趣事

背景:随着全球化的深入发展,电子行业也迎来了国际化的浪潮。Handok意识到,要想在激烈的国际竞争中立于不败之地,必须加强与国际市场的联系和合作。

发展:Handok积极寻求与国际知名电子企业的合作机会,通过技术引进、联合研发等方式不断提升自身的技术实力和产品品质。同时,公司还加大了对国际市场的开拓力度,通过参加国际展会、设立海外分支机构等方式扩大品牌影响力。

影响:国际合作的成功为Handok带来了更多的发展机遇和市场空间,公司的国际知名度和竞争力显著提升。

永丰盈(CST)公司的发展小趣事

深圳市永丰盈电子有限公司(CST)成立于2003年,初始阶段,公司只有几名员工和几台设备,专注于电子接插件产品的生产与销售。在创始人坚定的信念和团队不懈的努力下,CST逐步在市场上崭露头角。公司秉持“诚信、踏实、齐心、努力”的经营理念,通过严格的质量控制和持续的技术创新,赢得了客户的信任。

问答坊 | AI 解惑

秀偶的STM32-3.2寸TFT-ADS830-IDT7205示波器完工!完全开源!60M采样速率!!

最近一直在玩STM32和LCD屏,从字符到TFT,从1.8到3.5寸,挨个都摸了个摸,公司产品出来了,可一直想用这些东东来作点什么. 示波器上班用公司的,虽说也是便携的,但也不好带回家去用呵,看看市场上动辙千元以上,唉,还是自己动手来DIY方便自己,也造福网友 ...…

查看全部问答>

【请推荐一块数据I/O接口卡】

需要选择一款数字I/O卡,主要是用来进行信号的延时,输入的是光电开关转换的数字量,经过I/O卡的延时处理,输出触发信号去驱动摄像机进行数据采集,延迟大约0.5秒,速度不需要很快,希望用过类似性价比比较高的高手推荐一款,价格在1000元以内。…

查看全部问答>

vxworks目标机运行一段时间后就失去一切网络连接了,有可能是什么原因造成的呢?

我的基于vxworks5.5(tornado2.2)的嵌入式系统负责计费,并及时将信息通过网络(ftp功能)传到服务器上。 可是经常在运行一段时间后(例如几个小时,或者一天以后)发现失去了网络连接。 ftp, telnet都无法连到目标机上,但是系统其他功能还正常, ...…

查看全部问答>

无线蹭网卡网上热卖

“买块无线网卡就能免费上网。”这等“好事”正是日渐庞大的蹭网族所在做的——用邻居家的无线网络上网,就算加密了也能破解。此类无线网卡如今正在网上热卖。记者在淘宝网上找到上海一家WiFi产品专营店,店主极力推荐一款售价299元的USB无线网卡“ ...…

查看全部问答>

2812最小系统PCB板子购买求助

近期准备学习DSP,现在手头有一块2812芯片,想买块板子自己焊接(最小系统),于是上淘宝转了转,发现淘宝卖2812最小系统板的商家特别少。 目前在淘宝上看中了两块板子,可是同样是最小系统这两块板子差价惊人:一块20元、另一块130多(板子整体质 ...…

查看全部问答>

微机消谐

微机消谐中液晶函数中不需要加判忙语句,只要加3到5个us延时即可. 3.31版本前的频率判断有问题,会经常性的进不去中断,程序算法问题.待改进.  …

查看全部问答>

TI国赛细则!

马上就要开始到南京参见TI杯全国赛了,对于比赛的细则不是很了解,有参加过TI全国赛的大神们能否详解下竞赛规则。比如竞赛全封闭,到底怎么个全封闭的形式,    手机能带吗?    可以上网吗?    可以带书吗? & ...…

查看全部问答>

zigbee有关指定入网的说明

在工程simpleapp工程文件中有个sapi.c文件中有个API专门指定某个设备是否可以入网/****************************************************************************** * @fn          zb_PermitJoiningRequest  ...…

查看全部问答>

MSP430F149内部温度传感器测温度

这是我测温度的程序,可是测出来的温度是yy.0,请大家帮我看一下 void ADC12(void) {   ADC12CTL0 &= ~ENC;                            ...…

查看全部问答>

【Altera SoC体验之旅】对ADC采样数据进行FFT处理

本帖最后由 coyoo 于 2015-4-17 11:06 编辑 前面看了柱斑的3篇有关ADC采样的帖子,我的板子没有ADC,所以我也只能从同事的DAQ采集得到的数据进行FFT处理,当然只是进行仿真。学校学习的FFT的原理老早就丢给了老师,最近一段时间花了点时间复习了F ...…

查看全部问答>