Hi,
我自己做了块板子,网上淘了块stm32f446ret,使用cubeMx生成了一个系统时钟为180M的简单工程,开始调试发现没过多久就直接进硬件错误了,奇怪的事168M也会进硬件错误,主循环的LED都没进去,后来看了芯片手册发现除了要设置PWR 的VOS位以外,还要进入over drive 模式,否则时钟只能跑到168M,还要设置ODEN以及ODSWEN。发现VOS能正常置位,但是ODEN和ODSWEN设置都没反应。
之后我用官方代码内部16M RC振荡器产生180M时钟,发现也会在设置打开over drive mode时在等待HAL_OK处死等,原因是返回的HAL_TIMEOUT,查看CR的ODEN位和ODSWEN位都没设置成功。
无奈,手头没有f446开发板,只有一块f746 discovery,用cubeMx随便写个系统时钟216M的工程,发现这两个位能正常置位,说明cubeMx生成的代码是可靠的。 |