内部的HSI时钟

2019-07-20 14:32发布

                /*        Enables the Internal High Speed oscillator (HSI).*/
                RCC_HSICmd(ENABLE);
@brief  Enables or disables the Internal High Speed oscillator (HSI).
void RCC_HSICmd(FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  *(__IO uint32_t *) CR_HSION_BB = (uint32_t)NewState;
}
                /* Enable HSI */
                RCC->CR |= ((uint32_t)RCC_CR_HSION);
这两种有什么不同吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
iysheng
1楼-- · 2019-07-20 16:09
 精彩回答 2  元偷偷看……
taizonglai
2楼-- · 2019-07-20 18:32
进到RCC_HSICmd()这个函数里面去看一下这个函数怎么实现的,在和RCC->CR这行对比
zhoujianwen
3楼-- · 2019-07-20 22:58
zuozhongkai 发表于 2017-5-13 15:43
进到RCC_HSICmd()这个函数里面去看一下这个函数怎么实现的,在和RCC->CR这行对比

*(__IO uint32_t *) CR_HSION_BB = (uint32_t)NewState;
我看了啊,左边这个东西我在手册上没看到,不知道是干嘛的
keykey
4楼-- · 2019-07-21 00:14
 精彩回答 2  元偷偷看……
zhoujianwen
5楼-- · 2019-07-21 01:27
keykey 发表于 2017-5-14 21:29
assert_param()是一个宏定义,可以检测参数NewState是否正确,不对会报错。就是校验功能吧。

我说的两种方法你看出来是哪两种了吗
jinggx
6楼-- · 2019-07-21 03:15
没区别,一样的,库函数不是一个人做的,一群人做的,每个人都喜欢自己去#define,所以库里就是各种各样乱七八糟的宏定义,有此还重名有些还冲突。。。。。。,CR_HSION_BB这个你不要找了,数据手册上没有的,它是写库的人define出来的,法国人爱浪漫,做事比较随性,就这样了!
都觉得库是宝典,好用,我就不觉得啊,绕来绕去的地方太多了!

一周热门 更多>