更换外部晶振RT-Thread中修改频率

简介: 更换外部晶振RT-Thread中修改频率

使用STM32CubeMX生成一个标准工程,记得修改要更改的外部晶振,我这里是从原本的8MHz改成25MHz所以我这里要生成的工程的频率就修改为25MHz

打开工程过后再main文件中找到这段代码复制下来

/**
  * @brief System Clock Configuration
  * @retval None
  */
void SystemClock_Config(void)
{
  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  /** Configure the main internal regulator output voltage 
  */
  __HAL_RCC_PWR_CLK_ENABLE();
  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  /** Initializes the CPU, AHB and APB busses clocks 
  */
  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
  RCC_OscInitStruct.LSIState = RCC_LSI_ON;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLM = 25;
  RCC_OscInitStruct.PLL.PLLN = 336;
  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
  RCC_OscInitStruct.PLL.PLLQ = 4;
  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
  /** 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_DIV4;
  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
  {
    Error_Handler();
  }
  PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
  PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
  if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  {
    Error_Handler();
  }
}

然后我们回到RT-Thread工程中搜索这个函数

然后跳转到这个函数把我们前面复制的函数覆盖到里面然后编译就完成了(这个函数再board.c中)。


相关文章
|
8月前
|
编译器 C语言 C++
VSCode电脑版下载安装使用教程:轻松设置中文界面(附安装包,2026最新)
本文手把手教你完成VSCode下载、安装、汉化及配置C/Python开发环境,零基础也能快速上手,轻松开启编程之旅。
3912 10
|
9月前
|
JSON 监控 测试技术
n8n监听GitHub实战:代码一提交,自动化测试即刻启动
告别手动测试!用GitHub Webhook + n8n打造“提交即测试”智能流水线,代码推送自动触发环境拉起、测试执行与结果反馈,实现持续测试闭环。精准控制、实时通知,让质量守护无缝融入开发流程。
|
9月前
|
Linux
工业软件架构的新突破。开源的基于多核异构框架RTOnBoot和OpenPLC打造的低成本高性能linux主控加工业控制器解决方案
成都实安安信科技推出基于RTOnBoot与OpenPLC融合的开源工业控制器方案,实现Linux主控与实时控制优势互补。多核异构架构下,OpenPLC runtime运行于RTOnBoot实时核,循环周期达125μs,执行延时最低4.592μs,显著提升实时性;EtherCAT主站同步周期稳定,系统整体性能优异且成本低,代码全面开源,支持一键部署,欢迎交流与试用。
|
编解码 芯片 SoC
rk809-code喇叭耳机调试分享
rk809-code喇叭耳机调试分享
2001 0
|
传感器 数据采集 监控
QModbus例程分析
QModbus例程分析
Matlab 2022a 安装教程 附安装包
Matlab 2022a 安装教程 附安装包
9007 1
Matlab 2022a 安装教程 附安装包
|
C++
PADS查看3D视图及导入元器件模型的方法
本来只是想讲解如何使用PADS设计原理图和PCB的基本操作,能从无到有设计出一个PCB并且掌握PADS的设计流程就算入门了。掌握了基础之后,再复杂的设计和功能自己就可以不断的学习、探索,所以像3D这些功能本来是不准备讲解的。但是看到有小伙伴留言说自己需要用到3D功能,想了解如何达到比较真实的3D效果。后来想想,3D视图可以让设计者直接看到实物的效果,不仅可以减少空间上犯错的可能,而且3D视图渲染的独特效果还可以放在文档、论文中添色,所以就讲一下PADS的3D视图功能以及如何给PCB中的元器件添加3D模型。
8231 0
|
存储
【STM32基础 CubeMX】PWM输出
【STM32基础 CubeMX】PWM输出
2863 0
|
传感器 移动开发 IDE
RT-Thread I2C总线设备学习笔记
RT-Thread I2C总线设备学习笔记
406 0