历史上的今天
返回首页

历史上的今天

今天是:2025年08月19日(星期二)

正在发生

2018年08月19日 | STM32 HAL 库学习笔记之-------(系统时钟配置)

2018-08-19 来源:eefocus

使用CubeMX工具,让开发者不用理会底层的实现,是整个配置变简单

一、准备工具STM32_CubeMX

ST官网可下载 http://www.st.com/content/st_com/en/search.html#q=cubemx-t=tools-page=1

二、打开STM32_CubeMX开始配置,使用内部RC,最大倍频至64MHZ,芯片大于64MHZ,应该选择HSE

已STM32F103为例子

HSI配置


 HSE配置



三、以下是STM32F103 HES 72MHZ配置例子:
工具生成基本直接可以使用,需要注意是,外部晶振源,有8khz(默认),12khz,可以在System_stm32f1xx.h修改

/** System Clock Configuration*/
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct;
  RCC_ClkInitTypeDef RCC_ClkInitStruct;

    /**Initializes the CPU, AHB and APB busses clocks */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }
    /**Initializes the CPU, AHB and APB busses clocks */
  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;


  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

    /**Configure the Systick interrupt time */
  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);


    /**Configure the Systick   */
  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);

  /* SysTick_IRQn interrupt configuration */
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}

/** NVIC Configuration*/
static void MX_NVIC_Init(void)
{
  /* RCC_IRQn interrupt configuration */
  HAL_NVIC_SetPriority(RCC_IRQn, 0, 0);
  HAL_NVIC_EnableIRQ(RCC_IRQn);
}


推荐阅读

史海拾趣

芯源半导体(CW)公司的发展小趣事

随着市场竞争的加剧,芯源半导体(CW)公司意识到品质管理的重要性。公司加强了对原材料采购、生产过程和产品质量控制的管理,建立了完善的质量管理体系。同时,公司还引入了先进的检测设备和技术手段,以确保产品的稳定性和可靠性。这些措施使芯源半导体(CW)公司的产品质量得到了显著提升,赢得了客户的信任和好评。

国兴(GOODSKY)公司的发展小趣事

随着业务的不断发展,Cooler Master逐渐将触角延伸至全球。集团总部位于中国台北,同时在大陆设立了制造基地,并在北美、欧洲、东亚及北京、上海等地设有办事处或研发中心。这种全球化的布局使得Cooler Master能够更好地了解各地市场的需求,进而提供更加精准的产品和服务。此外,公司还与多家全球500强品牌合作,为其提供散热解决方案,进一步巩固了其在全球散热领域的领导地位。

ANADIGICS公司的发展小趣事

林仁政跳出已有的框架,不断思考机箱的设计。他敏锐地觉察到人们对于免工具安装的主板散热片的偏好,并深知散热效果不仅仅取决于散热片和风扇,更需要考虑空气的流动情况。结合日本高水准的立体设计灵感,林仁政带领工程师挑战困难,成功设计出了一台铝制机箱。这一机箱不仅具有高度的创新性,更因其纯手工制作的特性而显得弥足珍贵,对Cooler Master的发展具有重要意义。

AAT [Advanced Analog Technology, Inc.]公司的发展小趣事

Cooler Master一直致力于技术创新,不断推出具有颠覆性的产品。例如,其推出的MasterLiquid 360 Ion高性能散热器,配备了壮观的2.1英寸LCD屏幕,可实现无与伦比的定制显示内容。这一产品不仅展现了Cooler Master在散热技术上的领先地位,更体现了其对于用户体验的深刻洞察。此外,公司还借助Atmos系列迈向可持续散热的未来,为行业的发展注入了新的活力。

Hitron公司的发展小趣事

1992年,台北的一间出租屋内,林仁政凭借对电脑硬件的深厚理解与直觉,创立了讯凯国际股份有限公司,即现今广为人知的Cooler Master。初期,公司以生产个人电脑用散热器起家,目标明确——提供业界最好的散热方案。在没有资金、没有支持的情况下,林仁政独自完成了品牌的创建、日常事务的处理以及工作进程的管理。他的坚持与努力,使得Cooler Master逐渐在市场中站稳脚跟,开启了其在散热领域的传奇之旅。

A/D Electronics Inc公司的发展小趣事

在快速发展的过程中,A/D Electronics Inc始终坚守品质至上的原则。公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、出货等各个环节都严格把关。此外,公司还不断引入先进的生产设备和工艺,提高生产效率和产品质量。通过持续改进和创新,A/D Electronics Inc在激烈的市场竞争中始终保持领先地位。

问答坊 | AI 解惑

求助!如何用硅光电池做无线接收器

我这几天就要做毕业设计了,但以前没怎么做过,现在基本上没有头绪,请大家帮帮忙啊   课题:基于硅光电池的无线接收器实验研究设计 内容提要:在分析研究现有的红外无线接收器技术的基础上, 以硅光电池为无线接收器进行试验研究,探 ...…

查看全部问答>

六十大庆,散分!

普天同庆!哈哈...... 祝坛子里的兄弟姐妹们节日快乐!…

查看全部问答>

关于vxworks5.5下的82541网卡使用求教

找了好长时间,还是修改已有驱动没成功,deviceid等到底是改什么,查了芯片手册没发现差别啊,求教已经修改成功的同学,折腾的头大,现在被卡住在网卡这个地方了,有谁帮一把,谢谢各位!…

查看全部问答>

fpga就业前景

请问搞FPGA将来就业前景怎样,本人初学者,请大家指教~~…

查看全部问答>

[求助]关于单片机中断输出的问题

cc2430芯片中的中断输出问题,下面是程序大概的结构 for(i=0;i…

查看全部问答>

EK-LM3S811_ND Rev3 开发板上的作为仿真器的芯片发热严重

刚收到的EK-LM3S811_ND 开发板插上电,仿真器的那颗芯片发热,大家的开发板有没有这种现象.....??…

查看全部问答>

三相三线电能表连线问题

请教各位大侠,三相三线电能表在脉冲高电压试验中怎么连线的?…

查看全部问答>

altium不能调用集成库中的封装

altium不能调用集成库中的封装了,不知道怎么回事。 比如我在院里图中放置一个电阻,现在想更换该电阻的封装 我记得原来只用在封装的选项里面点浏览, 然后更换封装就好了。 但是现在不行,集成库已经添加,但是在可用的封装里面没有显示。 ...…

查看全部问答>

AD9更改已定pcb板尺寸

   更改形状按以下步骤:“设计”--->\"板子形状\"--->\"重新定义PCB外形\" ,然后就可以重新定义外形了。    建议在重定义PCB外形前,先在\"KEEPOUT层\"(禁止布线层)上先用直线把大概轮廓画出来,也包括固定孔。如果想精确定位pcb的外 ...…

查看全部问答>

断电后为什么TPS65910的VRTC不能输出?

我是用的TPS65910A3A1,处理器是AM3352。电源供电的时候可以产生1.8V的VRTC输出。断电后只有电池供电时没有产生1.8V的VRTC,电池电压在3.1V左右,通过引脚27输入VBACKUP,但VRTC输出还是0V,因此时间日期不能保存。不知道该怎么解决。相关的原理图 ...…

查看全部问答>