一、总述/ h; H2 y1 T! k7 d" j 之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。 % G$ ?0 V8 }, w% J8 o+ t) T2 A j 我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)5 ~- B/ @7 j1 n' N& z9 B, d" K( f% L 二、第一步——建目录 首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)" q; f. ~1 s: d, ^% Y: T3 k $ h! P U: j9 c: l # K% t) D; F/ v" S8 w1 ^' S 然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示: ) {/ Y9 e+ r# [ 4 i1 | j2 S* h8 q8 d, F ^
三、第二步——拷贝文件 首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:" w1 u5 j) b7 _1 x; S( N; [ ) z8 R- r; X1 t" P ' x0 b" I9 a9 z* D 然后,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Project/STM32F4xx_StdPeriph_Templates/目录下的main.c、main.h、stm32f4xx_conf.h、stm32f4xx_it.c和stm32f4xx_it.h解压到刚刚新建的STM32F407ZG/Driver目录下,如下图:1 N& b3 K4 u# ]6 d 3 ?: e$ q( L/ P( t 如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。 - N. D {4 i$ |2 Y/ I
四、第三步——MDK建工程4 L6 ~/ U) C8 z 打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图: . W- V3 w, j* f; e# d! ], U " b2 H7 |" Y" R1 ~' m 接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。+ y$ E& z. E0 r( V6 ] 五、第四步——MDK项目配置0 u4 ^* \1 o6 J: W1 b( g, \: Q 点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。 7 D2 h4 G/ o6 E( `* k: G6 o / @3 N6 f0 B% u! W 双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。: w% _4 ^% P+ O$ u / K2 J( @5 L8 ~8 F9 k: z: U
4 F L" H8 \7 t* S7 f: i 再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:6 Y! u% L- H# K1 z6 J) B % L C3 K4 N8 l( ]0 l0 i - x. C( G6 R9 T9 [ h C$ n% k4 f 在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s 8 K6 X8 W+ N, h 在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c' R( d! ]3 x7 X; i6 Z) k# T t' H , l# r9 i4 u3 T2 h9 m1 H 在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件 + _) U7 t- j, o 由于新学板子,还没有用到其他模块,所以Hardware为空。 最后,点击OK,返回主页面。 5 ?: K" n& L* {8 L( d 六、第五步——编译程序 点击下图中的编译按钮,进行编译。 发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。 至此,新建工程圆满完成。8 h- D2 L& U" O 9 ]" Z5 F5 t) R 4 h" q) h; M" i5 h8 c |
串口通信波特率异常的解决办法
《RT-Thread设备驱动开发指南》书籍学习记录
STM32F407/STM32F417通过以太网实现在应用中编程 (IAP)
STM32固件库分享,超全系列整理
分享STM32F407的学习资料 附学习笔记
STM32F4中文资料--基础篇
基于STM32F407和Cubemx的ADC采集+DMA传输实现简易示波器经验分享
基于STM32F407的DMA采样+FFT时域经验分享
基于STM32F407中的RNG获取随机数经验分享
【中文文档】AN3965_STM32F40x和STM32F41x基于串口的IAP