大家好!
目前需要采用内部16MHz晶振,但是按照协议栈的程序焊掉32MHz后程序卡死了。所以想问下不接这个高频晶振可以吗?
这里有一段程序我没有读懂:
#define HAL_BOARD_INIT() \ { \ /* Set to 16Mhz to set 32kHz OSC, then back to 32MHz */\ START_HSOSC_XOSC(); \ SET_OSC_TO_HSOSC(); \ SET_32KHZ_OSC(); \ SET_OSC_TO_XOSC(); \ STOP_HSOSC(); \ /* Enable cache prefetch mode. */ \ PREFETCH_ENABLE(); \ }
大括号内START_HSOSC_XOSC和STOP_HSOSC两句完全没有读懂,这似乎和手册对不上啊?这两个函数操作的是SLEEPCMD的第2位,也就是常写1的保留位吧?操作保留位有啥用?请问这两句是什么原理呢?去掉32MHz晶振的话这两句怎么变化呢?求指点,谢谢大家。