1、首先打开main.c文件,在头写一个delay的延时方法,如下图。
2、然后在延时方法下面写出自定义设置系统时钟的方法,如下图。
3、然后就可以在入口程序中首先调用 设置系统时钟方法,传入对应的参数,先设置好系统时钟,然后再设置LED灯的点亮熄灭之间加入延时方法,如下图。
4、然后编译代码,下图中可以看出0错误,0警告,如下图。
5、编译成功之后,就可以将代码下载到STM32F407的开发板中观察实验现象了。
要在仿真时看系统时钟频率,我知道两个方法。
第一就是,在system_stm32f10x.c这个文件中,有个全局变量,叫SystemCoreClock,保存了当前系统时钟的值。但是这个变量的值是在编译的时候就固定的,依赖于你的配置,在system_stm32f10x.c文件中有如下定义:
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
#define SYSCLK_FREQ_24MHz 24000000
#else
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
/* #define SYSCLK_FREQ_24MHz 24000000 */
/* #define SYSCLK_FREQ_36MHz 36000000 */
/* #define SYSCLK_FREQ_48MHz 48000000 */
/* #define SYSCLK_FREQ_56MHz 56000000 */
#define SYSCLK_FREQ_72MHz 72000000
#endif
默认是定义的72M。
另外一个就是,在调试时,KEIL的Peripherals菜单下,找到RCC,如果你安装的版本有硬件仿真,可以直接看到系统时钟频率,没有的话,就找到相关寄存器自己去算了。
设置一下,设备硬件晶振,设置为软件调试,启动debug运行,在菜单peripherals->Power,Reset and Clock Control(PRCC)下可以看到现在的系统时钟频率,