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

xiaoxiao2022-05-13  25

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

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

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

之后会跳出来一个界面,

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

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

 

点击Cancel就OK。

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

 

左边改名为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中

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

 

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

 

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

 

 

 

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

 

再次点击魔法棒,选择c/c++在define中添加STM32F10X_HD,USE_STDPERIPH_DRIVER,(中间逗号)。

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

 

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

#include "stm32f10x.h"  void Delay(u32 count)  {   u32 i=0;   for(;i<count;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++下也要添加。

这样我们的工程就建好了

转载请注明原文地址: https://www.6miu.com/read-4884197.html

最新回复(0)