新建工程模板——基于库函数

发布时间:2023-07-24 17:00

   一、新建文件夹,重命名(你想命名的名字),我这里命名为Template

二、在上一步新建的文件夹中再新建文件夹命名为USER,(代码工程都放在这个文件夹下面)CORE,STM32F10x_FWLIB,OBJ文件夹。

三、打开MDK菜单:Project->New Uvision Project,然后将目录定位到刚才建立的文件夹Template之下,命名为Template.

之后会跳出来一个界面,

新建工程模板——基于库函数_第1张图片

点击STMicroelectronics左边的加号,选择STM32F1 Series->STN32103->STM32F103RC(我这里用的是mini版)

点击OK,会跳出下面这个界面

 

新建工程模板——基于库函数_第2张图片

点击Cancel就OK。

四、在Target 1上右击,选择Manage Project Items......

 

新建工程模板——基于库函数_第3张图片

左边改名为Template,右边改为USER,CORE,FELIB(右边只有一个,点击X左边的新建去新建几个).

五、1、在STM32固件库中选择ALIENTEK MiniSTM32 V3.0开发板资料\8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver,将里面的inc和src两个文件复制到刚才新建的文件夹的FWLB的文件夹下面。

2、在STM32固件库中选择ALIENTEK MiniSTM32 V3.0开发板资料\8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport,将两个文件复制到新建文件夹Template的CORE文件夹下面。然后再把ALIENTEK MiniSTM32 V3.0开发板资料\8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm里的hd.s文件复制到CORE中

新建工程模板——基于库函数_第4张图片

3、在STM32固件库中选择ALIENTEK MiniSTM32 V3.0开发板资料\8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x将三个文件复制到USER中,

新建工程模板——基于库函数_第5张图片

 

再在ALIENTEK MiniSTM32 V3.0开发板资料\8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template选择,main,stm32f10x_it三个文件复制到USER中

新建工程模板——基于库函数_第6张图片

 

六、在MDK中,左侧右击选择Manage Project Items....,向三个文件夹中添加文件,点击FWLIB选择Add File....,在对应目录下选择src文件夹里的全部文件进行添加,USER下的三哥文件进行复制,在CORE中,选择文件类型为All,选择.c和.s文件添加。添加完成后点击OK。

 

新建工程模板——基于库函数_第7张图片

 

新建工程模板——基于库函数_第8张图片

 

点击魔术棒,选择output,将三个框全部打钩。点击OK。点击Select Folder for Objects....,将文件夹中的OBJ文件选定

新建工程模板——基于库函数_第9张图片

 

再次点击魔法棒,选择c/c++在define中添加STM32F10X_HD,USE_STDPERIPH_DRIVER,(中间逗号)。新建工程模板——基于库函数_第10张图片

点击魔法棒,选择c/c++在下面的include Paths中选择以下几个进行添加。

新建工程模板——基于库函数_第11张图片

 

点击USER下的main函数,清空,并将下面这段代码复制进去:

#include "stm32f10x.h"
 void Delay(u32 count)
 {
  u32 i=0;
  for(;i

 }
 int main(void)
 {    
  GPIO_InitTypeDef  GPIO_InitStructure;
     
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);     //使能PA,PD端口时钟
    
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                 //LED0-->PA.8 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //IO口速度为50MHz
  GPIO_Init(GPIOA, &GPIO_InitStructure);                     //根据设定参数初始化GPIOA.8
  GPIO_SetBits(GPIOA,GPIO_Pin_8);                         //PA.8 输出高

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                 //LED1-->PD.2 端口配置, 推挽输出
  GPIO_Init(GPIOD, &GPIO_InitStructure);                       //推挽输出 ,IO口速度为50MHz
  GPIO_SetBits(GPIOD,GPIO_Pin_2);                          //PD.2 输出高       
  while(1)
    {
        GPIO_ResetBits(GPIOA,GPIO_Pin_8);
        GPIO_SetBits(GPIOD,GPIO_Pin_2);
        Delay(3000000);
        GPIO_SetBits(GPIOA,GPIO_Pin_8);
        GPIO_ResetBits(GPIOD,GPIO_Pin_2);
        Delay(3000000);
    }
 }

 

在固件库中ALIENTEK MiniSTM32 V3.0开发板资料\4,程序源码\2,标准例程-V3.5库函数版本\2,标准例程-V3.5库函数版本\ALIENTEK MINISTM32 实验0-1 Template工程模板-新建工程章节使用复制system文件夹到Template文件中,并将其添加到MDK中注意在魔法棒的c/c++下也要添加。

这样我们的工程就建好了

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号