STM32F4工程模板建立与时钟的设置方法

发布者:纯真年代最新更新时间:2018-08-13 来源: eefocus关键字:STM32F4  工程模板  时钟  设置方法 手机看文章 扫描二维码
随时随地手机看文章

当你使用ST官网的STD标准库或者HAL库的时候,首先解决的就是时钟的配置问题,时钟就像一个人的心脏,心脏不好更别谈其他的工作了,闲话少说,关于STM32的时钟设置我们先从搭建Keil的工程模板开始。我们这次使用的是最新版的F4的STM32F4xx_StdPeriph_Driver库,版本1.8。具体请继续往下看。

1.  新建立Keil工程命名STM32F4_STD_Template,在Select Device for Target 对话框中,选择STM32F427VITx,这里一定要根据自己使用的芯片具体进行选择,当然官网的外设库也要与之匹配才行,如果没有安装支持包请转至:http://www.keil.com/dd2/pack/, 之后点击OK。

2. 在弹出的Manage Run—time Environment窗口中根据需要 进行选择。也可直接点击OK,例如我想要使用DSP指令,则展开CMSIS选择DSP项,CORE这项因为我们要自己添加内核支持文件,所以这里就不进行选择。Keil中自带printf功能,说白了就是重定向,不过这得需要SWDIO、SWCLK、SWO、Vcc、GND5根线才行,我吃过这方面的亏所以在这里提醒下各位网友。好了那实现Keil的printf功能需要怎么设置呢?接下来展开Compiler项,在展开菜单中展开I/O项具体设置见下图。启动文件我们不在这里添加。稍后我会写怎么使用Manage Run-time Environment来快速创建Keil工程。之后点击ok即可。


3. 点击工具栏的“品”字样的图标或者在工程窗口中右击Target1选择Manage project Items,在Manage project Items窗口中修改Project Targets中Target1为“STM32F427VIT6”,Groups  中添加CMSIS、USER、CORE、STM32F4xx_StdPeriph_Driver,在工程目录也建立相应的文件夹,之后点击OK,如下图:

4. 复制固件库中的Libraries目录下的STM32F4xx_StdPeriph_Driver目录中的所有文件到工程目录里的STM32F4xx_StdPeriph_Driver文件夹下,打开en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates目录将main.c、main.h 、stm32f4xx_conf.h、stm32f4xx_it.c、stm32f4xx_it.h、system_stm32f4xx.c六个文件复制到工程目录的USER目录下,再将en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include目录下的stm32f4xx.h、system_stm32f4xx.h复制到CMSIS目录中,再将en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm目录中的startup_stm32f427_437xx.s复制到工程目录CMSIS中,这里的引导文件要根据自己使用的芯片去选择。


5. 再到Keil中的相应目录添加相应的文件,添加方法为点击“品”字图标,进入Manage project Items窗口,选中一个组点击右下角的Add Files...添加文件。添加完成的目录如下:


6. 现在编译的话会出很多错,我们还需要对工程进行设置,点击品字旁边的类似剪刀的按钮,进入Options for Target“xxx”点击C/C++选项卡在Preprocessor Symbols中添加STM32F427_437xx,USE_STDPERIPH_DRIVER,前者根据 自己的芯片进行选择,后者表示使用标准库。在include Paths中添加头文件目录。之后点击OK.

7. 到此工程模板建立完成。


---------------------------------------完-------------------------------------美------------------------------------分------------------------------------割---------------------------------线----------

  •   高速外部时钟设置

文件:stm32f4xx.h

此文件需要修改的量为:HSE_VALUE,为外部高度时钟频率,单位为Hz,可以在本文件内重新定义,也可以直接修改,也可以根据自己的需要进行条件预编译,实现方法如下:

#if defined(STM32F40_41xxx) || defined(STM32F427_437xx)  || defined(STM32F429_439xx) || defined(STM32F401xx) || \

    defined(STM32F410xx) || defined(STM32F411xE) || defined(STM32F469_479xx)

 #if !defined  (HSE_VALUE)

  #if defined  (STM32F427_437xx)

   #define HSE_VALUE    ((uint32_t)24000000)

  #elif defined (STM32F40_41xxx)

   #define HSE_VALUE    ((uint32_t)24000000)

  #else

   #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */

  #endif

 #endif /* HSE_VALUE */

#elif defined (STM32F412xG) || defined(STM32F413_423xx) || defined(STM32F446xx)

 #if !defined  (HSE_VALUE)

  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */

 #endif /* HSE_VALUE */

#endif

  • PLL锁相环参数设置(PLL_M、PLL_Q、PLL_N)


在文件system_stm32f4xx.h中搜索PLL Parameters即可定位,根据宏定义来确定参数的值,具体的系统时钟计算方法:系统时钟频率=HSE时钟频率/PLL_M*PLL_N/PLL_P。具体看上面的时钟树。剩余的PLL_Q、PLL_R自己查阅手册吧。


关键字:STM32F4  工程模板  时钟  设置方法 引用地址:STM32F4工程模板建立与时钟的设置方法

上一篇:STM32F407的时钟配置(system_config.c浅见)
下一篇:STM32F4板子晶振更改后时钟的配置

推荐阅读最新更新时间:2024-03-16 16:10

STM32f4定时器中断实验代码
我们来看看我们的time.c文件。timer.c文件代码如下: //通用定时器 3中断初始化 //arr:自动重装值。 psc:时钟预分频数 //定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us. //Ft=定时器工作频率,单位:Mhz //这里使用的是定时器 3! void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TI
[单片机]
stm32f407】窗口看门狗 wwdog
一.窗口看门狗 窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位(WWDG- CR的第六位)变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个MCU复位。在递减计数器达到窗口配置寄存器(WWDG- CFR)数值之前,如果7位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个MCU复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。如图: T 就是WWDG_CR的低七位,W 即是WWDG- CFR的低七位。T 就是窗口看门狗的计数器,而W 则是窗口看门狗的上窗口,下窗口值是固定的(0X40)。当窗口
[单片机]
【<font color='red'>stm32f4</font>07】窗口看门狗 wwdog
STM32F4 开发笔记4: UART的使用方法
STM32F4内嵌4个通用异步/同步收发器(USART1、USART2、USART3、USART6)和两个通用异步收发器(UART4和UART5)。本文讲解此6个串行口,在异步模式下的使用方法,如不加说明,以USART1为例。 可以按照下述步骤,对通用异步串行口进行设置。 1、打开config.h文件,对如下图所示的宏进行设置,0x0c表示将当前串行口UART1的波特率设为115200bps,无效验。 2、打开main.c文件,可以在其中断服务函数中,完成接收逻辑的代码编写,如下图所示。此代码表明,当串行口收到1个字节的数据后,将触发串行口中断,在中断服务程序中,将接收到的1字节数据取出,送u8_UartDat
[单片机]
<font color='red'>STM32F4</font> 开发笔记4: UART的使用<font color='red'>方法</font>
PLL (Phase Locked Loop)锁相环提供总线时钟
由于一般的晶振受限于工艺与成本,做不到很高的频率,可在需要高频应用时,由相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路来实现稳定且高频的时脉冲讯号。 本例通过MC9S12XS128这款单片机来展示如何配置锁相环并为总线提供时钟。 一般需要以下几步来进行配置: 1.总线时钟选择外部晶振,通过CLKSEL_PLLSEL配置,为0时,总线时钟来源于外部晶振;为1时,总线时钟来源于PLLCLK。 2.关闭IPLL,通过PLLCTL_PLLON来配置,为1时,打开IPLL;为0时,关闭IPLL。 3.配置PLL的频率,通过SYNR、REFDV和POSTDIV来配置,有如下计算公式进行计算。 常用频率的几个赋值数据(P
[单片机]
PLL (Phase Locked Loop)锁相环提供总线<font color='red'>时钟</font>
STM32F4为控制核心的四轴航拍飞行器的设计与实现
摘要 本设计是基于STM32F4的四轴航拍平台。以STM32F407为控制核心,四轴飞行器为载体,辅以云台的航拍系统。硬件上由飞控电路,电源管理,通信模块,动力系统,机架,云台伺服系统组成。算法上采用简洁稳定的四元数加互补滤波作为姿态解算算法,PID作为控制器,实现飞行,云台增稳等功能。具有灵活轻盈,延展性,适应性强好等特点。 引言 四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。 四轴飞行器不但实现了直升机的垂直升降的飞行性能,同时也在一定程度上降低了飞行器机械结构的设计难度。四轴飞行器的平
[单片机]
以<font color='red'>STM32F4</font>为控制核心的四轴航拍飞行器的设计与实现
STM8 PCF8563时钟芯片子程序
软件设计 /********************************************************************* 目 的: 建立PCF8563操作库 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 *********************************************************************/ #include ws_i2c.h //器件地址: #ifndef WD_DADR #define WD_DADR 0xA2 //write device-address #endif #ifndef RD_DA
[单片机]
关于LCD1602显示可调时钟的程序
//奉上,希望对初学者有帮助// #include #define uchar unsigned char #define uint unsigned int sbit lcden=P2^7; sbit lcdrs=P2^6; sbit W=P2^5; sbit k1=P3^0; sbit k2=P3^1; sbit k3=P3^2; uchar num,count,k1num; char miao,fen,shi; uchar code table = 2015-01-5 SAT ; uchar code table1 = 00:00:00 ; void delay(uint z) { uint x,y; for(x
[单片机]
EPON系统中ONU的设计
引言   千兆以太网无源光网络(EPON)是一种点到多点拓扑结构的光接入网技术,采用无源光器件连接局端和远端设备,实现以太网业务的透明传输,并能在同一架构中实现语音、视频等综合业务的接入。EPON作为新兴接入网技术的突出优势在于低成本、易维护和扩展性好。EPON系统由OLT与ONU构成。    ONU硬件系统设计   系统硬件由嵌入式控制模块和网络交换模块两部分构成。嵌入式控制模块是ONU的控制和管理核心,它为嵌入式Linux操作系统的运行提供硬件平台,通过它来实现对网络交换模块的控制与配置,实现网络交换模块的正常运行。网络交换模块提供以太帧的交换与转发功能,嵌入式控制模块通过PCI总线与网络交换模块进行通信,访问网络交换模
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved