STM32笔记之工程建立

写在前面:
本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。

目录

一、工程文件夹建立(以便管理)

二、STM32外设标准固件库获取及提取

三、工程导入

四、工程配置

五、没有了,看下一篇吧


 

    1、开发环境:Keil uVision5  V5.21
    2、标准固件库:  V3.5
    3、目标芯片:STM32F103VET6
    4、下载调试工具:J-Link

一、工程文件夹建立(以便管理)

在每建立一个工程我们都创建一个以上图为基准的文件夹,文件分析如下图:

.bat 文件清理的编写可以看以前的Bat文件批量处理----DOS命令

二、STM32外设标准固件库获取及提取

标准固件库下载链接:官方外设标准固件库 V3.5

你也可以去意法半导体STM32/STM8技术社区里面找

解压完下载的文件后,我们主要提取的文件是 “ Libraries ” 这个文件夹里面的东西

  • _htmresc:ST的一些 logo图片
  • Libraries:官方提供的标准库文件
  • Project:里面存放的是官方提供的 demo code
  • Utilities:一些官方评估板的 demo code
  • Release_Notes:版本更新的 log
  • stm32f10x_stdperiph_lib_um:当前版本库的说明书

进入 “ Libraries ”文件夹,我们把 “ STM32F10x_StdPeriph_Driver ”文件夹全部复制到自己工程创建的 ...\ Libraries 文件夹里面去;然后再返回官方 ...\en.stsw-stm32054\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS 的文件夹里面,提取出以下东西

值得注意的是,在 “ startup ”文件下,可以看到很多个文件夹,如下图

因为我们现在是用 Keil的开发环境,所以把 “ arm ”文件夹下的全部文件提取出来(用哪个开发环境就提取相应的启动文件)

三、工程导入

1、打开软件,点击 Project -> New uVision Project,把工程保存在之前建立的 Project\RVMDK(uv5)的文件夹下

2、选择芯片型号

点击完成后,会弹出如下窗口,由于我们用自己在官方下载的库文件导入使用,所以不需要去配置勾选 keil提供的集装库,关闭即可

3、工程管理

如下图点击,进入工程项目管理

添加并编辑分组

最后一步步添加成下图这个样子(添加完成后对应的关系)

四、工程配置

如下图点击,进入工程配置

1、配置输出文件存放位置以及所需的输出文件

记得勾选上 “ Create HEX File ” 这一项,否则不会输出我们想要的 HEX下载文件,并把输出的位置放到我们之前建立 “ Objects ” 文件夹下

2、配置编译过程中产生的调试信息文件存放位置及输出相应的调试文件

3、配置预定义宏,选择所需的库配置

在方框处预定义宏 STM32F10X_HD 和 USE_STDPERIPH_DRIVER,注意要用 “ . ” 隔开;宏 “ STM32F10X_HD ” 需要根据你所选的芯片选择对应的宏;对应的宏解释如下,你也可以在 “ stm32f10x.h ” 这个头文件里面找

#if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL) 
  /* #define STM32F10X_LD */     /*!< STM32F10X_LD: STM32 Low density devices */
  /* #define STM32F10X_LD_VL */  /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */  
  /* #define STM32F10X_MD */     /*!< STM32F10X_MD: STM32 Medium density devices */
  /* #define STM32F10X_MD_VL */  /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */  
  /* #define STM32F10X_HD */     /*!< STM32F10X_HD: STM32 High density devices */
  /* #define STM32F10X_HD_VL */  /*!< STM32F10X_HD_VL: STM32 High density value line devices */  
  /* #define STM32F10X_XL */     /*!< STM32F10X_XL: STM32 XL-density devices */
  /* #define STM32F10X_CL */     /*!< STM32F10X_CL: STM32 Connectivity line devices */
#endif
/*  Tip: To avoid modifying this file each time you need to switch between these
        devices, you can define the device in your toolchain compiler preprocessor.

 - Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers
   where the Flash memory density ranges between 16 and 32 Kbytes.
 - Low-density value line devices are STM32F100xx microcontrollers where the Flash
   memory density ranges between 16 and 32 Kbytes.
 - Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx microcontrollers
   where the Flash memory density ranges between 64 and 128 Kbytes.
 - Medium-density value line devices are STM32F100xx microcontrollers where the 
   Flash memory density ranges between 64 and 128 Kbytes.   
 - High-density devices are STM32F101xx and STM32F103xx microcontrollers where
   the Flash memory density ranges between 256 and 512 Kbytes.
 - High-density value line devices are STM32F100xx microcontrollers where the 
   Flash memory density ranges between 256 and 512 Kbytes.   
 - XL-density devices are STM32F101xx and STM32F103xx microcontrollers where
   the Flash memory density ranges between 512 and 1024 Kbytes.
 - Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.

*/

这里因为是 STM32F103VE芯片,所以根据上面提供的信息选择 “ STM32F10X_HD ”

4、查找包含路径

依然是 “ C/C++ ” 这项,如下图配置,添加编译时所需的包含路径

5、选择 Debug方式

根据你使用的调试器,选择相应的配置,我这里是 J-LINK,所以选择图中的选项;如果你的是 ST-Link,那就选择 ST-Link这个选项

6、配置下载复位

五、没有了,看下一篇吧

发布了40 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42992084/article/details/104083528