• HSE_VALUE 修改问题


    MDK的例程给的外部晶振是25Mhz,以24Mhz为例,介绍修改方法。

    ·1. 修改HSE_VALUE

    在 “stm32f4xx.h" 搜索 ”HSE_VALUE" 会看到下面这句话:

    #if !defined  (USE_STDPERIPH_DRIVER)
    /**
     * @brief Comment the line below if you will not use the peripherals drivers.
       In this case, these drivers will not be included and the application code will 
       be based on direct access to peripherals registers 
       */
      /*#define USE_STDPERIPH_DRIVER */
    #endif /* USE_STDPERIPH_DRIVER */
    
    /**
     * @brief In the following line adjust the value of External High Speed oscillator (HSE)
       used in your application 
       
       Tip: To avoid modifying this file each time you need to use different HSE, you
            can define the HSE value in your toolchain compiler preprocessor.
      */           
    
    #if !defined  (HSE_VALUE) 
      #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
      
    #endif /* HSE_VALUE */

     意思说不用修改这里的HSE_VALUE,可以使用预编译工具来修改,但是MDK添加 HSE_VALUE的预编译还行,添加值我不会。

    要命的是,这里的“stm32f4xx.h"是受保护的不允许修改,好在,后面有个配置的头文件:

    搜索"#include",你会看到:

    #ifdef USE_STDPERIPH_DRIVER
      #include "stm32f4xx_conf.h"
    #endif /* USE_STDPERIPH_DRIVER */

    打开 "stm32f4xx_conf.h"文件,添加HSE_VLAUE的定义即可。

    /* Define to prevent recursive inclusion -------------------------------------*/
    #ifndef __STM32F4xx_CONF_H
    #define __STM32F4xx_CONF_H
    
    #undef HSE_VALUE
    #define HSE_VALUE    ((uint32_t)24000000) /*!< Value of the External oscillator in Hz */
    
    /* Includes ------------------------------------------------------------------*/
    /* Uncomment the line below to enable peripheral header file inclusion */
    #include "RTE_Components.h"

     你以为完了吗,没有!!!

    2. 修改PLL_M

    打开文件 "system_stm32f4xx.c" ,搜索”PLL_M", 将其修改为24:

    /************************* PLL Parameters *************************************/
    /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
    #define PLL_M      24

     (END)

  • 相关阅读:
    Windows程序员的Linux快捷键
    Handeler的详细解释
    Asp.Net_Mvc_View
    使用脚本方式和使用控件方式来输出Html内容的区别
    当发布时报错: 找不到 obj\Debug\Package\PackageTmp\xxx.aspx 文件
    网路岗v1.2简单使用
    Html.Encode
    Android开发中的错误
    Asp.Net_Mvc_IgnoreRoute
    Linux目录结构
  • 原文地址:https://www.cnblogs.com/qiyuexin/p/8410947.html
Copyright © 2020-2023  润新知