( ̄o ̄) . z Z683 2024-04-03 15:08 采纳率: 30%
浏览 20

标准库函数改写HAL库语句

/* 设置所有时钟到默认状态,使用HSI时钟 */
HAL_RCC_DeInit();
如果不使用HAL库,用标准库函数语句怎么写

  • 写回答

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
    寄存器用于配置时钟分频。为了将时钟设置为默认状态,我们需要执行以下步骤:

    1. 将系统时钟选择位(SW)设置为 HSI(0x00)。
    2. 等待 HSI 稳定。
    3. 清除 PLLCFGR 寄存器中的 PLLSRC 位,选择 HSI 作为 PLL 输入。
    4. 禁用 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的时钟等
      }
      
      需要注意的是,具体的寄存器和位操作可能因芯片型号而异,以上代码仅为示例,实际使用时需要根据具体的芯片型号和参考手册来进行适配。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    评论

报告相同问题?

问题事件

  • 创建了问题 4月3日

悬赏问题

  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,
  • ¥15 centos7系统下abinit安装时make出错