STM32学习1:创建工程模板

STM32学习1:创建工程模板

  • 1,建立工程文件夹
  • 2,Keil新建工程
  • 3,Keil工程配置
  • 4,收尾

  STM32是基于ARM内核(cortex-m3系列属于armv7架构)的32位MCU,特点是高性能、低成本、低功耗,总之就是性价比很高,可以满足很多简单嵌入式设备的需求。由于市面上STM32的资料很多,学习起来会比较方便,所以很多人会选择STM32入门嵌入式开发。
  鄙人也是在淘宝购置了一套普中STM32开发板,跟着随带的光盘学习起来的。碰到不懂的就在CSDN上浏览学习高手的博客,大神们不仅技术很好还乐于分享,蒙其惠泽,未感忘恩,所以自己开始写博客慢慢积累。
  如果您是初学者,看到该系列文章后有所帮助,鄙人深感荣幸。如果您是大神,请您指出不足指出。如果没人看到,权当积累与记录了。
  鄙人使用普中科技公司的开发板,在淘宝可以找到。芯片是STM32F103ZET6,固件库是V3.5,编译环境是Keil uVision4。
  转载请注明完整出处。


  下图是STM32系列的规格与命名范式。

STM32学习1:创建工程模板_第1张图片

  下面开始正题,如何从0开始创建一个STM32的软件工程模板。


1,建立工程文件夹

  新建一个文件夹作为工程文件的存储目录,鄙人自己是将其命名为test1的,下同。
  将固件库中的Libraries文件夹复制粘贴到test1。
  在test1文件夹中:
    新建Output文件夹(生成的输出文件,包括hex文件)
    新建Startup文件夹(启动文件)
    新建User文件夹(自己编写的main函数、中断等)
    新建App文件夹(保存编写的外设)
  在固件库\Project\STM32F10x_StdPeriph_Template目录下复制main.c;stm32f10x_conf.h;stm32f10x_it.c;stm32f10x_it.h这四个文件到test1\User下
  做好后test1如下图所示:

STM32学习1:创建工程模板_第2张图片

2,Keil新建工程

  打开Keil uVision4 软件,新建项目,如下图所示。

STM32学习1:创建工程模板_第3张图片
STM32学习1:创建工程模板_第4张图片
STM32学习1:创建工程模板_第5张图片
STM32学习1:创建工程模板_第6张图片
STM32学习1:创建工程模板_第7张图片

  相应的在test1文件夹中多了一个新东西。

STM32学习1:创建工程模板_第8张图片

  接下来添加组与文件。
  可能有人会问不是已经在test1中新建了文件夹以及文件吗,为什么还要在这里重复添加一遍。这是因为在test1中新建只是在电脑硬盘里面新建的,并没有告诉uVersion4这个编译器,在编译器中设置的组是虚拟的,它要链接到具体的电脑硬盘的文件当中,所以要在组内添加进实实在在的文件。这样才可以把各种文件组织起来形成工程环境。

STM32学习1:创建工程模板_第9张图片

  将原有默认的Souce Group 1组删除,删除按钮在新建组按钮右边。
  新建User组,在该组添加test1\User 下的两个文件:main.c;stm32f10x_it.c
  新建Cmsis组(存放SM32内核文件),在该组添加:
    test1\Libraries\CMSIS\CM3\CoreSupport下的core_cm3.c
    test1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的system_stm32f10x.c
  新建Startup组,在该组添加test1\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下的startup_stm32f10x_hd.s 注意默认的文件类型是.c文件,要改成All files(.)才会显示。
  新建Stdperiph_Drive组,在该组添加test1\Libraries\STM32F10x_StdPeriph_Driver\src下的stm32f10x_gpio.cstm32f10x_rcc.c。为了减小生成文件的大小,这里根据需要添加文件。最基本的是GPIO和RCC,它们分别是输入输出和时钟。
  新建App组不添加文件。点击OK后可以在左侧的Project栏看到新建的组和组内的文件。

STM32学习1:创建工程模板_第10张图片

3,Keil工程配置

STM32学习1:创建工程模板_第11张图片

  在这里我们需要改动的地方有以下几个。
  第三个Output里面:

STM32学习1:创建工程模板_第12张图片

  第四个Listing里面:

STM32学习1:创建工程模板_第13张图片

  第六个C/C++里面:添加 编译指令 USE_STDPERIPH_DRIVER,STM32F10X_HD

STM32学习1:创建工程模板_第14张图片
STM32学习1:创建工程模板_第15张图片

  后面需要注意第九个Debug ,选择左边Use Simulator表示软件仿真,选择右边表示JLINK或JTAG硬件仿真,我们选择软件仿真。
点击OK,工程配置结束。


4,收尾

  从左侧Project栏打开main.c,可以看到里面系统默认存在很多代码。

STM32学习1:创建工程模板_第16张图片

  将其全部删除后,添加如下代码。

STM32学习1:创建工程模板_第17张图片

  创建公共头文件。
  stm32f10x.h是STM32自带的库函数。如果在后续开发中还有其他自己写的函数都要把头文件添加到公共头文件public.h中,这样main.c只需包含了公共头文件就可以调用所有的函数了,结构更加清晰并且代码不会被重复编译。

STM32学习1:创建工程模板_第18张图片
STM32学习1:创建工程模板_第19张图片

  如果出现warning,很可能是光标位置不当。每个文件的光标要放在代码最后一行的下一行,也就是最后要多空出来一行。这样编译就不会有问题啦。

STM32学习1:创建工程模板_第20张图片

  注意,改动后要将对应的文件保存后再点击编译。否则,硬盘中的文件其代码并没有变化,点击编译也只是重复编译了一遍未改动的代码。
至此简单的工程模板就创建成功了。可以将这个模板保存好,以后在做项目的时候复制过来一份模板,在模板上添加代码,这样会比较方便。
  这里有我的创建好的工程模板和stm32的一些说明文件。
  https://download.csdn.net/download/huagengpai1994/10809289

你可能感兴趣的:(STM32基础学习)