RCC模块的标准库解析

朱老师单片机课程学习记录

//specifies the new state of the HSE  指定HSE的状态

//  *   This parameter can be one of the following values:
// *     @arg RCC_HSE_OFF: HSE oscillator OFF
//  *     @arg RCC_HSE_ON: HSE oscillator ON
//  *     @arg RCC_HSE_Bypass: HSE oscillator bypassed with external //clock
//  * @retval None
void RCC_HSEConfig(uint32_t RCC_HSE)
{
  /* Check the parameters */
  assert_param(IS_RCC_HSE(RCC_HSE));
  /* Reset HSEON and HSEBYP bits before configuring the HSE ------------------*/
  /* Reset HSEON bit */
  RCC->CR &= CR_HSEON_Reset;
  /* Reset HSEBYP bit */
  RCC->CR &= CR_HSEBYP_Reset;
  /* Configure HSE (RCC_HSE_OFF is already covered by the code section above) */
  switch(RCC_HSE)
  {
    case RCC_HSE_ON:
      /* Set HSEON bit */
      RCC->CR |= CR_HSEON_Set;
      break;
      
    case RCC_HSE_Bypass:
      /* Set HSEBYP and HSEON bits */
      RCC->CR |= CR_HSEBYP_Set | CR_HSEON_Set;
      break;
      
    default:
      break;
  }
}

assert断言,断言机制用的最多的就是:库函数中用断言来检查用户调用该库函数时传参到底对不对。上面那个函数就是stm32中的一个库函数,函数中使用了断言机制,RCC_HSEConfig这个函数接收的参数只能是这三个,分别是
RCC_HSE_OFF,RCC_HSE_ON,RCC_HSE_Bypass,如果不是这三个,就会报错。

//这个函数需要用户自己去定义的
void assert_failed(uint8_t* file, uint32_t line)
{
   //用户用自己的方法去报错一个断言错误

}

枚举的定义方式

typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值