STM32F446新建工程模板遇到的5个问题总结

一、宏定义:STM32F446xx,USE_STDPERIPH_DRIVER

宏定义的说明:为什么需要两个宏定义

USE_STDPERIPH_DRIVER   :这个说明你在使用标准外设驱动,有自己的外设配置文件,即stm32f10x_conf.h,详细可查看stm32f10x.h中8296-8298行。关于stm32f10x_conf.h文件中的内容,是有选择的#inlude "stm32f10x_xxxx.h",这样只编译需要的外设文件,减少hex文件的体积。如果没有使用这个宏,或没有stm32f10x_conf.h文件,那么编译时会有一大堆莫名奇妙地错误,这是因为MDK中也自带了stm32f10x_xxxx.h文件,使得编译器使用MDK中.h文件,而.c文件和.h文件版本是不匹配的。注意,如果是库文件的错误,那一定是你工程配置有问题。

STM32F446xx    是根据自己的芯片型号类配置的,对于F4系统,配置的方法如下:

打开文件路径:S:\STM32F446\en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm     查看自己的使用的芯片

对于STM32F446来说,宏定义STM32F44xx其实就是上图圈红圈的内容

对于STM32F407来说,宏定义STM32F40_41xxx

【注意】两个宏定义之间是用逗号隔开的

二、对于FWLIB中需不需要stm32f4xx_fsmc.c的说明

可以参考文章STM32 FSMC的用法--LCD:https://blog.csdn.net/stephen_yu/article/details/10220785

三、关于包含路径的说明

固件库存放的头文件子目录是\FWLIB\inc,不是 FWLIB\src。结合自己的ADC项目

四、系统时钟配置(重要)

还有个非常重要的关键点,就是系统时钟的配置,查看 System_stm32f4xx.c 文件,把主时钟频率配置为F446匹配的180MHz。

1、系统时钟设置原理与计算公式

2、查看分频倍频系数

3、查看外部晶振的值

4、计算验证:8MHz×360/8×2=180MHz,到此为止,系统时钟已经配置为180MHz,即主频已经配置为180MHz。

五、删掉两个地方,错误和警告就没了

六、关于CORE文件夹的说明,启动文件修改为自己使用的文件

与正点原子的F407对比

注意:我用core_cmSimd(2015年编写的)替代掉core_cm4_simd(2013年编写的),编译时会发现错误,我们只需要把宏定义#define core_cm4_simd修改为#define core_cmSimd 即可解决问题

猜你喜欢

转载自blog.csdn.net/baidu_37973494/article/details/80430081