关于stm32c8t6的PF0、PF1无法使用GPIO

PF0、PF1与包含了时钟晶振复用功能,所以无法直接使用GPIO功能。

解决办法:添加 RCC->CR &= ~((uint32_t)RCC_CR_HSEON); 

这条程序代码是针对 STM32 系列微控制器中的时钟控制寄存器(RCC_CR)进行操作的。在该代码中,执行了位操作和位掩码操作,用于将指定的位清零。

  • RCC:是 STM32 系列微控制器中的外设时钟控制寄存器(Reset and Clock Control Register)。
  • CR:是 RCC 寄存器中的一个位域,用于控制系统的各种时钟源和时钟选项。
  • RCC_CR_HSEON:是 RCC_CR 寄存器定义中的一个位,表示高速外部时钟使能位。

现在让我们逐个了解这条代码的执行步骤:

  1. 将 RCC_CR_HSEON 转换为一个无符号 32 位整数,确保其位值正确。
  2. ~((uint32_t)RCC_CR_HSEON):使用位求反运算符(~) 对 RCC_CR_HSEON 的位进行反转,即将它的 1 位变为 0,0 位变为 1,得到了一个位屏蔽值(bit mask),用于屏蔽 RCC_CR 寄存器的对应位。
  3. &=:使用按位与赋值操作符,将 RCC_CR 寄存器与反转位屏蔽值执行按位与操作,清除 RCC_CR 寄存器中对应位的值为 0,而保留其他位的值不变。
  4. 最后,将按位与结果的值重新存储回 RCC_CR 寄存器,实现了将 RCC_CR 寄存器的 HSEON 位清零的操作。

这条代码的目的是关闭 STM32 微控制器中的高速外部时钟(High Speed External clock),即将 HSEON 位清零。这样做是为了停用外部时钟源(如晶体振荡器),并切换到其他系统时钟源。具体切换系统时钟的方式和步骤可能需要根据具体的系统要求进行进一步的配置。

需要注意的是,在修改 RCC_CR 或其他系统寄存器之前,你应该先对其域进行相应的配置和初始化,确保所做的更改不会导

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值