创建STM32工程模板

发布时间: 2024-07-24
来源: 电子工程世界

1、创建一个工程文件夹,并且在文件夹里创建三个文件夹并分别以CORE、STM32F10X_LIB、USER命名。


2、将STM32F10x_StdPeriph_Lib_V3.5.0里跟内核相关的几个文件(core_cm3.c/core_cm3.h、startup_stm32f10x_hd.s、stm32f10x.h、system_stm32f10x.c/system_stm32f10x.h)拷贝到CORE文件目录里,几个文件路径如下图所示。

poYBAGPl5jyAPdx-AAB-KPGgqZ8030.png



poYBAGPl5jGAbUGDAAF1r0xBXFQ716.png



pYYBAGPl5iWAS269AAD5DN_04PE390.png



3、将STM32F10x_StdPeriph_Lib_V3.5.0里的库函数文件拷贝到STM32F10X_LIB文件夹里,文件夹路径如图所示。



poYBAGPl5heAcpvBAAA5C-ATzC0237.png


4、核对复制文件



poYBAGPl5guAFZqUAAECgFnZt38612.png



pYYBAGPl5gCAHPqxAABv-_pYwXs700.png


5、打开keil_MDK软件,依次点击菜单栏里的Project->New uVision Project,命名工程名称,这里的工程名称为“MDK_TEMP”并保存在前面新建的文件夹USER里,如图所示。



pYYBAGPl5fKADH0FAAEi0h5_5UU223.png


6、选择芯片型号,由于我们是基于F1系列产品的STM32F103ZE进行创建工程,所以我们选择STMicroelectronics->STM32F1 Series->STM32F103->STM32F103ZE如图所示。



poYBAGPl5eaACnH6AAKWTo2QRj8482.png



poYBAGPl5dqACtdxAAFAzVlyNBk653.png


7、往工程添加分组,这里主要三个分组,分别为USER、CORE、LIB,并往CORE添加core_cm3.c、startup_stm32f10x_hd.s、system_stm32f10x.c等与内核相关文件,往LIB添加STM32F10X_LIBsrc里的库文件,具体步骤如图所示。



pYYBAGPl5cyAJGC7AADhPzyiR7Y410.png



poYBAGPl5byAasX_AAD368GAe6w662.png



poYBAGPl5bCAV76PAADQXHGLzqc193.png



poYBAGPl5aaAJscIAAEGTJp9Cyo902.png



pYYBAGPl5ZiAR0S5AAGPQP_-aqs157.png



8、添加宏定义及头文件路径,具体步骤见图

"USE_STDPERIPH_DRIVER,STM32F10X_HD"



pYYBAGPl5Y2ABw3aAAGTYoN03WI240.png



poYBAGPl5YCAFiGdAAFXXFIFeeo672.png



poYBAGPl5XWARDSeAABhmZoY7nU624.png



pYYBAGPl5WqAa4fKAAF0R146F0Y238.png


9、创建一个main.c文件,里面可以很简单的创建一个main函数并将该文件保存在USER目录下,并添加进USER组里分别如图所示




pYYBAGPl5V2AdFFrAAFwfPkcaR0371.png



pYYBAGPl5VKASKFIAAEFD2k-jgo455.png


10、简单编写main.c,开始编译,编译结果如图所示,从编译结果看有报错



poYBAGPl5UaAO_C_AAIDLhIsOgA102.png


11、添加文件,把需要的文件添加到USER文件夹下



pYYBAGPl5TmAPlUrAAFi84K9Weo225.png



pYYBAGPl5S6ACCfEAAEAbeyzg_E713.png


12,重新编译,没有问题,创建完成

poYBAGPl5R6AGzcEAAOZOaqFzVk528.png

13、点亮LED,下列代码写入main.c文件中,具体请根据开发板脚位


#include "stm32f10x.h"


void LED_Init(void)

{

  GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量

  

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

  

  GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;  //选择你要设置的IO口

  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;   //设置推挽输出模式

  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;    //设置传输速率

  GPIO_Init(GPIOC,&GPIO_InitStructure);      /* 初始化GPIO */

  

  GPIO_SetBits(GPIOC,GPIO_Pin_0);   //将LED端口拉高,熄灭所有LED

}


int main(void)

{

  LED_Init();

  while(1)

  {

    GPIO_ResetBits(GPIOC,GPIO_Pin_0);//点亮

  }

}

14、下载验证可以驱动LED

poYBAGPl5P-ARy5rABM5-YuJfHo565.png



文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。