mdk硬件仿真STM32 怎么查看当前系统时钟 stm32怎么通过仿真器在keil的debug中查看定时器的...

\u5982\u4f55\u5728MDK\u4e2d\u67e5\u770b\u7cfb\u7edf\u65f6\u949f\u914d\u7f6e

\u3000\u3000\u8981\u5728\u4eff\u771f\u65f6\u770b\u7cfb\u7edf\u65f6\u949f\u9891\u7387\uff0c\u6211\u77e5\u9053\u4e24\u4e2a\u65b9\u6cd5\u3002
\u3000\u3000\u7b2c\u4e00\u5c31\u662f\uff0c\u5728system_stm32f10x.c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\uff0c\u6709\u4e2a\u5168\u5c40\u53d8\u91cf\uff0c\u53ebSystemCoreClock\uff0c\u4fdd\u5b58\u4e86\u5f53\u524d\u7cfb\u7edf\u65f6\u949f\u7684\u503c\u3002\u4f46\u662f\u8fd9\u4e2a\u53d8\u91cf\u7684\u503c\u662f\u5728\u7f16\u8bd1\u7684\u65f6\u5019\u5c31\u56fa\u5b9a\u7684\uff0c\u4f9d\u8d56\u4e8e\u4f60\u7684\u914d\u7f6e\uff0c\u5728system_stm32f10x.c\u6587\u4ef6\u4e2d\u6709\u5982\u4e0b\u5b9a\u4e49\uff1a
\u3000\u3000#if defined \uff08STM32F10X_LD_VL\uff09 || \uff08defined STM32F10X_MD_VL\uff09 || \uff08defined STM32F10X_HD_VL\uff09
\u3000\u3000/* #define SYSCLK_FREQ_HSE HSE_VALUE */
\u3000\u3000#define SYSCLK_FREQ_24MHz 24000000
\u3000\u3000#else
\u3000\u3000/* #define SYSCLK_FREQ_HSE HSE_VALUE */
\u3000\u3000/* #define SYSCLK_FREQ_24MHz 24000000 */
\u3000\u3000/* #define SYSCLK_FREQ_36MHz 36000000 */
\u3000\u3000/* #define SYSCLK_FREQ_48MHz 48000000 */
\u3000\u3000/* #define SYSCLK_FREQ_56MHz 56000000 */
\u3000\u3000#define SYSCLK_FREQ_72MHz 72000000
\u3000\u3000#endif
\u3000\u3000\u9ed8\u8ba4\u662f\u5b9a\u4e49\u768472M\u3002
\u3000\u3000\u53e6\u5916\u4e00\u4e2a\u5c31\u662f\uff0c\u5728\u8c03\u8bd5\u65f6\uff0cKEIL\u7684Peripherals\u83dc\u5355\u4e0b\uff0c\u627e\u5230RCC\uff0c\u5982\u679c\u4f60\u5b89\u88c5\u7684\u7248\u672c\u6709\u786c\u4ef6\u4eff\u771f\uff0c\u53ef\u4ee5\u76f4\u63a5\u770b\u5230\u7cfb\u7edf\u65f6\u949f\u9891\u7387\uff0c\u6ca1\u6709\u7684\u8bdd\uff0c\u5c31\u627e\u5230\u76f8\u5173\u5bc4\u5b58\u5668\u81ea\u5df1\u53bb\u7b97\u4e86\u3002

\u5728\u4f7f\u7528Keil\u5f00\u53d1\u73af\u5883\u7f16\u5199stm32\u7a0b\u5e8f\u65f6\u6211\u4eec\u7ecf\u5e38\u4f1a\u7528\u5230\u786c\u4ef6\u5728\u7ebf\u4eff\u771f\u7684\u529f\u80fd\uff0c\u80fd\u5728watch\u7a97\u53e3\u4e2d\u770b\u5230\u6211\u4eec\u5728\u7a0b\u5e8f\u4e2d\u5b9a\u4e49\u7684\u5168\u5c40\u53d8\u91cf\u3002\u6211\u4eec\u5e0c\u671b\u5728\u7a0b\u5e8f\u5b9e\u65f6\u8fd0\u884c\u4e2d\u770b\u5230\u53d8\u91cf\u7684\u53d8\u5316\u60c5\u51b5\uff0c\u4f46\u6709\u65f6\u4e0d\u80fd\u5b9e\u65f6\u67e5\u770b\uff0c\u539f\u56e0\u662f\u8f6f\u4ef6\u7684\u8bbe\u7f6e\u4e0d\u5bf9\u3002

\u5728Debug\u6a21\u5f0f\u4e0b\uff0c\u70b9\u51fb\u83dc\u5355\u680f\u4e0b\u7684View\uff0c\u5728\u4e0b\u9762\u6709\u4e00\u4e2aPeriodic Window update \u70b9\u4e00\u4e0b\uff0c\u9009\u5b9a\u4e00\u4e0b\u5c31\u884c\u4e86\u3002

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)下可以看到现在的系统时钟频率,

扩展阅读:stm32用什么软件仿真 ... stm32官网 ... proteus stm32 ... stm32硬件iic为什么不用 ... stm32 pwm ... stm32嘀嗒定时器硬件 ... stm32仿真器哪个好用 ... stm32有必要买仿真器么 ... stm32仿真器是干啥的 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网