使用STM32F4的固件库时,默认的晶振为25Mhz晶振,因此需要做一定的修改。之前因为一直没有注意这个问题,我捣腾了许久,发现工作时钟总是不对,查阅了一下资料之后才知道有好几个地方需要修改。
原文链接:修改STM32库函数中的晶振值
STM32F407的库文件中默认晶振值为25MHz,若外接晶振8MHz,则需修改以下几个地方:
1)修改HSE_VALUE的值
将#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
修改为 #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
2)修改PLL_M的值
将#define PLL_M 25修改为 #define PLL_M 8
3)修改STM32F407工程的Options设置
在Option for target"Flash"窗口中,选择Target页面,修改STMicroelectronics STM32F407VG栏中Xtal(MHz)的值为8.0
关键字:固件库操作 STM32F4 必要配置
引用地址:
使用固件库操作STM32F4时的必要配置
推荐阅读最新更新时间:2024-03-16 15:32
STM32F4+CubeMX+Hal库下使能FPU
STM32F4相比于F103系列的一个巨大优势是带硬件浮点单元FPU。我看网上有非常多关于在STM32CubeMX进行配置后使能FPU的一些操作方法,但是总感觉说的不到位。 我们的原则是: 尽量不破坏CubeMX自动生成的代码!也就是下次再次使用CubeMX生成代码时不需要再次瞎捣鼓一番来使能FPU! 在这里,重新帮大家捋一遍。 在STM32CubeMX生成工程后,在Keil中打开工程,首先确认配置界面Target选项卡中的Floating Point Hardware为Single Precision(即单精度硬件浮点单元) 打开system_stm42f4xx.c可以看到在第168行明确写着FPU单元的开启条件
[单片机]
STM32F4CubeMX学习笔记之GPIO_LED
开发板:普中PZ6808L-F4 开发环境:keil5+CnbeMx 两个LED配置为推挽输出
[单片机]
STM32F4_TIM输入波形捕获(脉冲频率)
Ⅰ、概述 本文在前面文章“STM32基本的计数原理”的基础上进行拓展,讲述关于“定时器输入捕获”的功能,和上一篇文章“定时器比较输出”区别还是挺大的。在引脚上刚好相反:一个输入、一个输出。 本文只使用一个TIM5通道3(也可其他通道)捕获输入脉冲的频率,通过捕获两次输入脉冲的间隔时间来计算脉冲波形的频率。间隔一定时间读取频率并通过串口打印出来。 当然也可通过两路通道捕获脉冲信号的占空比,计划后期整理。 笔者通过信号发生器产生信号,上位机串口助手显示捕获的脉冲频率。(没有信号发生器的朋友可以结合上一篇文章PWM输出做信号源:在同一块板子上也可以使用不同定时器,将输出引脚接在输入引脚) 先看一下实例的实验现象:
[单片机]
stm32F407之内部温度传感器
刚才发了ADC的一般用法,得知stm32内部内置了一个温度传感器,于是趁热调试了一下内部温度传感器。没有软件滤波,正如手册里所说的,该温度传感器起到一个检测温度变化的作用,如果你想要精确的温度测量,请你外置测温元件...呵呵,测试结果如图: 代码如下: /************************************************************ Copyright (C), 2012-2022, yin. FileName: main.c Author: 小枣年糕 Date: 2012\05\01 Description: ADC1 DMA tempersen
[单片机]
stm32f407按键输入函数
unsigned char KEY_Scan(unsigned char mode) { static unsigned char key_release = 1; if(mode) key_release = 1; if(key_release && (1 == KEY0 || 1 == KEY1)) { delay_ms(10); key_release = 0; if(1 == KEY0) return 1; else if(1 == KEY1) return 2; } else if(0 == KEY0 && 0 == KEY1) key_release
[单片机]
STM32F407-串口数据传送
一、串口基础 1.常用的串口相关寄存器 USART_SR状态寄存器 USART_DR数据寄存器 USART_BRR波特率寄存器 2.串口操作相关库函数(省略入口参数) void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能 void USART_Cmd();//使能串口 void USART_ITConfig();//使能相关中断 void USART_SendData();//发送数据到串口, DR uint16_t USART_ReceiveData();//接受数据,从DR读取接受到的数据 FlagStatus USART_GetFlagSta
[单片机]
STM32F429--启动文件简单分析
下面的内容是stm32f429的启动文件拷贝过来的,并对其部分进行了说明 ;******************** © COPYRIGHT 2016 STMicroelectronics ******************** ;* File Name : startup_stm32f429_439xx.s ;* Author : MCD Application Team ;* @version : V1.8.0 ;* @date : 09-November-2016 ;* Description : STM32F429xx/439xx devices vector table for MDK-ARM toolchain.
[单片机]
第35章 STM32F429的FMC总线应用之驱动AD7606
35.1 初学者重要提示 AD7606 的配置很简单,它没有内部寄存器,量程范围和过采样参数是通过外部IO控制的,采样速率由MCU或DSP提供的脉冲频率控制。 AD7606必须使用单5V供电。而AD7606和MCU之间的通信接口电平由VIO(VDRIVE)引脚控制。也就是说VIO必须接单片机的电源,可以是3.3V也可以是5V(范围2.3V – 5V)。 正确的理解过采样,比如我们设置是1Ksps采样率,64倍过采样。意思是指每次采样,AD7606会采样64次数据并求平均,相当于AD7606以64Ksps进行采样的,只是将每64个采样点的值做了平均,用户得到的值就是平均后的数值。因此,如果使用AD7606最高的200Ksps
[单片机]