#define HSE_VALUE ((uint32_t)24000000)
外部晶振是多少的就写多少,如果是24M的外部晶振就写成24000000。

如果不用宏定义的话,就在单片机的头文件中找到宏定义部分,头文件的宏定义默认16M外部晶振,将其修正为实际晶振值就可以。
(此处已添加圈子卡片,请到今日头条客户端查看)
2 配置外部晶振配置外部晶振时须要使能外部时钟,并且要等到晶振稳定。利用库函数配置的语句如下所示:
void CLK_Init()
{
CLK_HSECmd(ENABLE); //外部时钟开
while(SET != CLK_GetFlagStatus(CLK_FLAG_HSERDY)); //等待外部晶振起振
CLK_ClockSwitchCmd(ENABLE);//切换使能
CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE);//切换到外部晶振
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); //1分频
}
3 在main()中初始化将CLK_Init()在main()中初始化。至此,外部晶振就配置完毕了,但是在实行程序时,却创造晶振起振失落败,程序去世在CLK_ClockSwitchConfig(...)处,为什么呢?这是由于没有添加Flash等到周期,这部分内容须要在option bytes中添加,如下图所示。
option bytes
默认设置为No wait state,须要修正为1 wait state。
实在,这一部分的内容在数据手册上有表示:
When using the high-speed external clock (HSE) at higher frequencies up to 24 MHz,one wait state is necessary. In this case the device option byte should be programmed to insert this wait state. Refer to the datasheet option byte section.
设置完后,再下载程序,就创造,晶振已经正常起振了。





