程序小白的我从安装mdk5.14搭建平台到更新至V5.25搭建平台,并配置相关参数,发现了一些问题,并查看一些博友的文章最终得以解决,以供以后如有类似情况可以查看解决。 ! k& N5 z% u. N0 X S- g: E 如图所示,建立相关文件夹。打开MDK,Project->New uVision Project$ j G2 D7 E& K! h( P 2 E7 u9 ?# i. _2 m- r& e) G- e) y 4 u+ F9 t' N0 R5 _2 R+ K 此处注意的是需要选择相应的芯片,我们选择的是STM32F407ZGT6,一定要安装相应的pack安装包才可以建立工程文件。 接着,我们添加相应的启动代码(startup_stm32f40_41xxx.s)。 启动代码的主要作用如下: & g2 i- J1 e- g/ T& V! R( K/ C 3 K, E4 B" P( e- _& L 1.堆栈(SP)的初始化;* M8 ^" U9 p; M: A( O& C 7 l4 w( S9 |9 D6 _9 a 2.初始化程序计算器(PC);0 h& N3 E5 P7 k, G 3.设置向量表异常事件的入口地址; # M5 i7 H& z" e { 4.调用main函数。 其中我们修改了启动文件的Reset_handler函数,该段代码主要加入了开启STM32F4硬件FPU的代码,以使能STM32F4的浮点运算单元。* a3 x; c( u6 Q1 M6 x- t 其中的0xE000ED88为协处理器控制寄存器(CPACR)的地址,该寄存器的第20~23位用来控制是否支持浮点运算,此处全部设置为1,以支持浮点运算。 mdk的target Code Generation 选用Use FPU (V5.25 版本显示为 Single Precision) 。(mdk默认STM32F4外部晶振为12M,此处Xtal(Mhz)设置为8.0M) 6 g1 ~' t. T, ]. i, D" i$ ~1 u/ l( G 然后在Target目录树打开Manage Project Items进行目录创建和文件添加。. S$ K0 Y+ j/ U/ R, _4 T 接着就是设置OBJ输出目录,将生成的hex文件放置在OBJ目录里。Options for Target->Output->Create Hex File->Select Folder For Objects->找到OBJ文件夹->OK " e) f# \. S0 b7 W# M/ w1 b 头文件相关处理在Options for Target->C/C++选项中$ f# P- E. l4 \0 ]' ~; f % O/ F0 W& U p/ |5 _ Define : STM32F40_41xxx K5 `5 H" I1 j3 n Optimization : -O0 / }2 {5 r( A# d( h( F, g! } Inlcude Paths 添加相应的头文件路径' |6 Z/ `. E7 G: C4 m4 | . J1 q3 ?5 i2 B5 d7 H1 ~% ^ Jlink相关驱动建议调用以往支持的Segger目录。 |
串口通信波特率异常的解决办法
《RT-Thread设备驱动开发指南》书籍学习记录
STM32F407/STM32F417通过以太网实现在应用中编程 (IAP)
STM32固件库分享,超全系列整理
分享STM32F407的学习资料 附学习笔记
STM32F4中文资料--基础篇
基于STM32F407和Cubemx的ADC采集+DMA传输实现简易示波器经验分享
基于STM32F407的DMA采样+FFT时域经验分享
基于STM32F407中的RNG获取随机数经验分享
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP