STM32F103 HSE时钟倍频以及设置频率函数(新手向,本人也是新手)

devtools/2024/12/4 17:21:30/

HSE_SetSysCLK是野火教程里的,不懂的去这 16-RCC(第3节)使用HSE配置系统时钟并使用MCO输出监控系统时钟_哔哩哔哩_bilibili

HSE_AutoSetHSE的算法部分是自己写的,用了一个转接数组。C语言不支持bool所以自己定义了一个boolK代替bool。

AutoHSE.h:

/**
*@file AutoHSE.h
*@version 自定
*/#ifndef __AUTOSETHSE_H
#define __AUTOSETHSE_Htypedef enum Bool_
{False = 0,True = !False
}boolK;void HSE_SetSysCLK(uint32_t RCC_PLLMul_x);
boolK HSE_AutoSetHSE(uint32_t Soften);#endif /*! __AUTOSETHSE_H */

AutoHSE.c:

#include "AutoHSE.h"uint32_t RCC_PLLMul_X[15] = {
RCC_PLLMul_2,
RCC_PLLMul_3,
RCC_PLLMul_4,
RCC_PLLMul_5,
RCC_PLLMul_6,
RCC_PLLMul_7,
RCC_PLLMul_8,
RCC_PLLMul_9,
RCC_PLLMul_10,
RCC_PLLMul_11,
RCC_PLLMul_12,
RCC_PLLMul_13,
RCC_PLLMul_14,
RCC_PLLMul_15,
RCC_PLLMul_16
};void HSE_SetSysCLK(uint32_t RCC_PLLMul_x)
{ErrorStatus HSEStatus;  //typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;??????????RCC_DeInit();                           //??RCC_HSEConfig(RCC_HSE_ON);              //??HSEHSEStatus=RCC_WaitForHSEStartUp();      // ??HSE??if(HSEStatus==SUCCESS){FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);      //?????FLASH_SetLatency(FLASH_Latency_2);                         // 72M???2???RCC_HCLKConfig(RCC_SYSCLK_Div1);   //HCLK???RCC_PCLK1Config(RCC_HCLK_Div2);    //PCLK1???RCC_PCLK2Config(RCC_HCLK_Div1);    //PCLK2???RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_x);   //?????RCC_PLLCmd(ENABLE);                                   //??while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET){};      //??PLL??RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);             //??????while(RCC_GetSYSCLKSource()!=0x08);}else{}	
}boolK HSE_AutoSetHSE(uint32_t Soften)
{if(Soften > 128 || Soften < 2){return False;}else{HSE_SetSysCLK(RCC_PLLMul_X[(Soften-(Soften%8))/8-2]);return True;}return False;
}// _____END_________

亲测,有用:D,喜欢就点个赞,支持一下我这个新手吧qwq.


http://www.ppmy.cn/devtools/139397.html

相关文章

STM32G4系列MCU的Direct memory access controller (DMA)功能之一

目录 概述 1 DMA介绍 1.1 DMA的描述 1.2 DMA的主要特性 2 DMA的应用 2.1 DMA1和DMA2 2.2 DMA的映射关系 3 DMA的功能描述 3.1 架构框图 3.2 DMA引脚和内部信号 3.3 DMA传输数据 3.4 DMA仲裁 概述 本文主要介绍STM32G4MCU的DMA功能&#xff0c;包括功能概述&#x…

KAN-Transfomer——基于新型神经网络KAN的时间序列预测

1.数据集介绍 ETT(电变压器温度)&#xff1a;由两个小时级数据集&#xff08;ETTh&#xff09;和两个 15 分钟级数据集&#xff08;ETTm&#xff09;组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。 traffic(交通) &#xff1a;描…

探索云开发Copilot,AI如何重塑开发流程?

文章目录 1 AI与低代码2 Copilot功能3 案例解析4 Copilot不足5 改进建议 刚接触 Copilot 时&#xff0c; Copilot 的 AI 低代码生成功能让我眼前一亮&#xff0c;使得我开发变得更简洁高效。 以前&#xff0c;我总是依赖手写代码&#xff0c;从搭建环境到实现功能&#xff0c;每…

Redis进行性能优化可以考虑的一些策略

选择合适的数据结构 根据实际的需求选择合适的数据结构&#xff0c;以高效地访问和存储多个属性。 比如如果你需要存储用户的多个属性&#xff0c;如用户名、邮箱等&#xff0c;使用哈希可以比使用多个字符串键值对更节省内存 避免大key/value 较大地key和value会占用更多的…

Java开发每日一课:Java开发岗位要求

找过工作的朋友应该知道&#xff0c;现在招聘Java开发工程师的公司特别多。那么Java开发这个岗位具体是做什么的&#xff1f;又有什么招聘要求呢&#xff1f; 我毕业的时候也面试过很多公司&#xff0c;当时对Java开发这个岗位的要求不甚了解&#xff0c;因为懂Java语法知识就能…

夜神模拟器+Charles+postern+Mgisk+TrustMeAlready实现抓包

[实测有用]夜神模拟器CharlesposternMgiskTrustMeAlready实现抓包 PS:此贴仅做为技术交流,禁止非法用途。 1.初始化条件 A.安装MUMU模拟器安卓12版本 B.按图示选择&#xff0c;设置好代理端口8889 C.查看本机IP地址 D.导出证书&#xff0c;安装配置&#xff0c;暂时保存…

FPGA实战篇(呼吸灯实验)

1.呼吸灯简介 呼吸灯采用 PWM 的方式&#xff0c;在固定的频率下&#xff0c;通过调整占空比的方式来控制 LED 灯亮度的变化。 PWM&#xff08;Pulse Width Modulation &#xff09;&#xff0c;即脉冲宽度调制&#xff0c;它利用微处理器输出的 PWM 信号&#xff0c;实现对…

【开源免费】基于Vue和SpringBoot的服装生产管理系统(附论文)

博主说明&#xff1a;本文项目编号 T 066 &#xff0c;文末自助获取源码 \color{red}{T066&#xff0c;文末自助获取源码} T066&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…