ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

keil5 新建 stm32项目 步骤

2021-07-07 16:33:36  阅读:194  来源: 互联网

标签:stm32f10x Pin 步骤 STM32F10x stm32 USER GPIO StdPeriph keil5


建立文件夹Demo_stm32,作为项目根目录

 

在demo下,建立 OBJ,CORE,STM32F10x_FWLIB,USER,SYSTEM文件夹。

 

打开并拷贝\8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下的inc,和 src 目录到STM32F10x_FWLIB文件夹下

 

打开并拷贝\8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的 core_cm3.c 和 core_cm3.h 文件到 CORE

打开并拷贝 \8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 下的startup_stm32f10x_hd.s 文件到 CORE

打开并拷贝 \8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的 五个文件到USER(main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h,system_stm32f10x.c)

打开并拷贝 \8,STM32参考资料\1,STM32F1xx固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 文件夹下三个文件拷贝到USER(stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h)

 

USER下一共有7个C 文件(除了项目文件)


 

 

打开keil5,右键点击target,Manage Project Items 

新建groups,USER,CORE,FWLIB,

在USER下,添加 main.c ,stm32f10x_it.c , system_stm32f10x.c

在CORE下添加 core_cm3.c , startup_stm32f10x_hd.s

在FWLIB下添加STM32F10x_FWLIB下的src下的所有文件。


 

打开魔术棒

在output文件 选择输出的目录为OBJ,然后点选生成hex

在c/c++   Preprocessor Symbols   define里添加 STM32F10X_HD,USE_STDPERIPH_DRIVER  , 在 include paths 里,添加 ..\CORE  ..\USER  ..\STM32F10x_FWLIB\inc 

在debug ,Use ST-Link Debugger 点击setting,选择一些ST-LINK/V2 让其生成serial号,PORT选择SW,在Flash Download中勾选择 Reset and Run 


 

若出现中文乱码,

在edit中选择configuration,Encoding选择 GB2312

在main函数中,因为是评估头文件,可以替换下如下的代码,用于正点原子的战舰开发板

#include "stm32f10x.h"


/************************************************
 ALIENTEK 战舰STM32F103开发板实验0
 工程模板
 注意,这是手册中的新建工程章节使用的main文件 

 作者:正点原子 @ALIENTEK
************************************************/


 void Delay(u32 count)
 {
   u32 i=0;
   for(;i<count;i++);
 }
 int main(void)
 {    
  GPIO_InitTypeDef  GPIO_InitStructure;
     
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|
  RCC_APB2Periph_GPIOE, ENABLE);        //使能PB,PE端口时钟
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                //LED0-->PB.5 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     //IO口速度为50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure);                 //初始化GPIOB.5
  GPIO_SetBits(GPIOB,GPIO_Pin_5);                    //PB.5 输出高
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                //LED1-->PE.5推挽输出
  GPIO_Init(GPIOE, &GPIO_InitStructure);                 //初始化GPIO
  GPIO_SetBits(GPIOE,GPIO_Pin_5);              //PE.5 输出高       
  while(1)
    {
        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
        GPIO_SetBits(GPIOE,GPIO_Pin_5);
        Delay(3000000);
        GPIO_SetBits(GPIOB,GPIO_Pin_5);
        GPIO_ResetBits(GPIOE,GPIO_Pin_5);
        Delay(3000000);
    }
 }

 

标签:stm32f10x,Pin,步骤,STM32F10x,stm32,USER,GPIO,StdPeriph,keil5
来源: https://www.cnblogs.com/sdgtxuyong/p/14982080.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有