/* 设置所有时钟到默认状态,使用HSI时钟 */
HAL_RCC_DeInit();
如果不使用HAL库,用标准库函数语句怎么写
标准库函数改写HAL库语句
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- GISer Liu 2024-04-03 15:40关注
该回答引用自GPT-3.5,由博主GISer Liu编写:
根据问题描述,要将使用HAL库的语句
HAL_RCC_DeInit();
改写为不使用HAL库的标准库函数语句,可以使用标准库中的函数来实现相同的功能。根据HAL库的作用,HAL_RCC_DeInit();
的作用是将所有时钟设置为默认状态,使用HSI时钟。因此,我们可以使用标准库函数来实现相同的效果。
在使用标准库函数时,需要先了解相关的寄存器和位操作。根据STM32的参考手册,我们可以找到与时钟控制相关的寄存器和位操作。以STM32F4系列为例,时钟控制寄存器为RCC
,其中的CR
寄存器用于配置时钟源,CFGR
寄存器用于配置时钟分频。为了将时钟设置为默认状态,我们需要执行以下步骤:- 将系统时钟选择位(
SW
)设置为 HSI(0x00)。 - 等待 HSI 稳定。
- 清除 PLLCFGR 寄存器中的 PLLSRC 位,选择 HSI 作为 PLL 输入。
- 禁用 PLL。
具体的代码如下:
cCopy code
需要注意的是,具体的寄存器和位操作可能因芯片型号而异,以上代码仅为示例,实际使用时需要根据具体的芯片型号和参考手册来进行适配。#include "stm32f4xx.h" void SystemInit() { // 将系统时钟选择位(SW)设置为 HSI RCC->CFGR &= ~RCC_CFGR_SW; // 等待 HSI 稳定 while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI); // 清除 PLLCFGR 寄存器中的 PLLSRC 位,选择 HSI 作为 PLL 输入 RCC->PLLCFGR &= ~RCC_PLLCFGR_PLLSRC; // 禁用 PLL RCC->CR &= ~RCC_CR_PLLON; // 等待 PLL 禁用 while (RCC->CR & RCC_CR_PLLRDY); // 其他相关操作,如设置AHB、APB1、APB2的时钟等 }
如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑
解决 无用评论 打赏 举报 - 将系统时钟选择位(
悬赏问题
- ¥100 华为手机私有App后台保活
- ¥15 sqlserver中加密的密码字段查询问题
- ¥20 有谁能看看我coe文件到底哪儿有问题吗?
- ¥20 我的这个coe文件到底哪儿出问题了
- ¥15 matlab使用自定义函数时一直报错输入参数过多
- ¥15 设计一个温度闭环控制系统
- ¥100 rtmpose姿态评估
- ¥15 通联支付网上收银统一下单接口
- ¥15 angular有偿编写,
- ¥15 centos7系统下abinit安装时make出错