打印
[N32L4xx]

adc时钟和HSI与HSE问题

[复制链接]
627|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ktdm1314|  楼主 | 2022-10-10 11:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
系统时钟选择的是HSE外部时钟,ADC时钟为PPL的16分频,adc1M时钟选择外部时钟的8分频。
ADC_ConfigClk(ADC_CTRL3_CKMOD_PLL, RCC_ADCPLLCLK_DIV16);
RCC_ConfigAdc1mClk(RCC_ADC1MCLK_SRC_HSE, RCC_ADC1MCLK_DIV8);
现在遇到个问题。
写flash的时候,开启了内部HSI,写完了之后,想把HSI关闭了,以达到节能的目的。
但现在的问题是,如果把HSI关闭了,ADC初始化就会无法通过。
while(ADC_GetFlagStatusNew(ADC,ADC_FLAG_RDY) == RESET){};
始终卡在这。
有了解这部分的朋友吗?

使用特权

评论回复
沙发
sy12138| | 2022-10-10 11:33 | 只看该作者
把flash操作屏蔽看ADC能不能通过,以及看一下用的是不是最新版本的库

使用特权

评论回复
板凳
sy12138| | 2022-10-10 11:42 | 只看该作者
或者提供一下代码看看

使用特权

评论回复
地板
ktdm1314|  楼主 | 2022-10-10 13:27 | 只看该作者
sy12138 发表于 2022-10-10 11:33
把flash操作屏蔽看ADC能不能通过,以及看一下用的是不是最新版本的库

屏蔽flash后,ADC正常运行。但是不能关hsi

使用特权

评论回复
5
sy12138| | 2022-10-10 14:12 | 只看该作者
我在ADC例程打开再关掉HSI,对ADC没有啥影响

7216981081ea70e0d0dd10dbd5c7926.png (31.24 KB )

7216981081ea70e0d0dd10dbd5c7926.png

使用特权

评论回复
6
sy12138| | 2022-10-19 14:31 | 只看该作者
了解到这部分原理了

使用特权

评论回复
7
sy12138| | 2022-10-19 14:33 | 只看该作者
因为ADC_1M时钟的默认时钟源是HSI,所以要使能ADC_1M时钟的时候保证HSI是打开的,像你这种情况是把HSI关闭再初始化1M时钟,就会导致初始化不成功,卡在ADC等待就绪哪里那里

使用特权

评论回复
8
sy12138| | 2022-10-19 14:34 | 只看该作者
把HSI关闭之后,就算ADC_1M配成HSE也会失败

使用特权

评论回复
9
sy12138| | 2022-10-19 14:35 | 只看该作者
所以正确的顺序应该是先配置ADC,再对动HSI的外设进行操作

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

16

帖子

1

粉丝