创建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



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

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>