
一、总述! Q+ } p/ i/ S/ M; X 之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。6 p8 ^$ ]0 q! |0 K 我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库) 二、第一步——建目录3 ~- x I B. T p& b0 r* T 首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库) ![]() 然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示: 2 H" E3 \4 Q! T ![]()
三、第二步——拷贝文件3 V U% K/ n1 m& H$ {4 j8 {: ^3 b 首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:+ I% Z. ?/ s q$ g) k$ k" ] 8 ]- Q& y" d) K4 S8 u! g ?& O ![]() : k! B$ j; }: [ 然后,将固件库压缩文件/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目录下,如下图:. k; x/ F/ X6 ]+ _ & b: V" d! h2 p. C! Q# P, l9 t ![]() 4 g# G9 D2 I2 U ![]() ( W" H% }4 c1 d" Q+ j/ }, M/ V+ r 如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。/ F) @& G6 I6 C- J4 D
![]() . [8 o7 ]5 p) c" Q5 S* p 四、第三步——MDK建工程 打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:" a! A6 U: O. L# d R) ^ % d* T2 l& u% n! J+ s& H ![]() ! F! C; {( A% q" u1 c ![]() 3 r% i+ v+ s# ^% N1 M8 j0 j 接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。 ![]() 五、第四步——MDK项目配置 点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。 # Q |8 k q1 v4 U7 K ![]() ![]() 双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。4 o8 s4 Y# |; O! I; E$ G o 2 d9 ]. H8 n( q& H5 s
![]() ! O3 U* p$ l. \, R- t9 t 再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录: ![]() 1 I3 Y/ C8 _/ B8 p, ~3 U5 \ ![]() 4 O9 q6 B1 a+ N7 l: p) E 在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s - |, z( V h* x& M( m, V 在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c ' s. k# C( b' {+ f J9 l7 Q+ |( q 在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件 由于新学板子,还没有用到其他模块,所以Hardware为空。3 z, O% } `+ d* l4 ? ; Q5 F% C3 {6 Y* `+ z1 g 最后,点击OK,返回主页面。9 C2 r5 d/ A F, _( U 3 b2 l* E3 a& r 六、第五步——编译程序 点击下图中的编译按钮,进行编译。 ![]() 2 E( u" g _+ ^! e3 n+ c 发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。: F2 S/ p/ v0 h+ R) T3 D* l. J ![]() 至此,新建工程圆满完成。: g% q8 Z7 O& I |
Nucleo-F429ZI开发板体验LWIP功能
TouchGFX应用移植自定义屏幕
STM32固件库分享,超全系列整理
【经验分享】新建基于STM32F40x 固件库的MDK5 工程
年终中奖---F429板卡网络应用
【NUCLEO STM32F429ZI开发板】之点灯大师
OpenBLT移植到STM32F405开发板
串口通信波特率异常的解决办法
《RT-Thread设备驱动开发指南》书籍学习记录
STM32F407/STM32F417通过以太网实现在应用中编程 (IAP)