zoukankan      html  css  js  c++  java
  • keil5 新建 stm32项目 步骤

    容易搞错的一点

    在manage project item中添加FWLIB中的src,在预编译时,c/c++ 的include path中添加的时FWLIB中的inc


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

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

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

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

    打开并拷贝 8,STM32参考资料1,STM32F1xx固件库STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm 下的startup_stm32f10x_hd.s 文件到 CORE

    打开并拷贝 8,STM32参考资料1,STM32F1xx固件库STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_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.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x 文件夹下三个文件拷贝到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_FWLIBinc 

    在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);
        }
     }

    便于开发,加入几个工具类

    拷贝 4 程序源码2,标准例程-库函数版本实验0-1 Template工程模板-新建工程章节使用SYSTEM 下所有的文件夹,至 SYSTEM下,共三个文件,delay,sys,usart

    在Manage Project Items 里添加 SYSTEM  groups,然后给SYSTEM添加文件,把这3个文件都添加上 

    在c/c++ 编译里,添加编译头目录,include path,添加这3个文件头

  • 相关阅读:
    难以捉摸?机器学习模型的可解释性初探
    什么是边缘计算?它将如何补充5G?
    2021年将会成为主流的四个云计算技术
    中国SaaS这个局,AI能破吗?
    边缘计算点燃新风暴,IT与OT之战一触即发
    为什么保护云安全是一个数学问题
    物联网中的热门IT技能
    2021 区块链及数字货币9大展望
    边缘计算将取代云计算?5G时代的最强黑马出现了吗?
    2021年区块链十大发展趋势:那些偶然中的必然
  • 原文地址:https://www.cnblogs.com/sdgtxuyong/p/14982080.html
Copyright © 2011-2022 走看看