adc时钟和HSI与HSE问题
系统时钟选择的是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){};
始终卡在这。
有了解这部分的朋友吗?
把flash操作屏蔽看ADC能不能通过,以及看一下用的是不是最新版本的库 或者提供一下代码看看 sy12138 发表于 2022-10-10 11:33
把flash操作屏蔽看ADC能不能通过,以及看一下用的是不是最新版本的库
屏蔽flash后,ADC正常运行。但是不能关hsi 我在ADC例程打开再关掉HSI,对ADC没有啥影响
了解到这部分原理了 因为ADC_1M时钟的默认时钟源是HSI,所以要使能ADC_1M时钟的时候保证HSI是打开的,像你这种情况是把HSI关闭再初始化1M时钟,就会导致初始化不成功,卡在ADC等待就绪哪里那里 把HSI关闭之后,就算ADC_1M配成HSE也会失败 所以正确的顺序应该是先配置ADC,再对动HSI的外设进行操作
页:
[1]