图文并茂、一条龙 讲述利用Keil5 开发STM32项目全过程

图文并茂、一条龙 讲述利用Keil5 开发STM32项目全过程

原文链接,版权归原作者所有

  • 摘要:本文是作者偶然间在CSDN上看到的一篇,主要讲解了以下内容:1.Keil5 MDK下载、安装、注册;2.芯片支持包和标准库下载;3.STLINK、CH340(USB转串口芯片)驱动安装;4.Keil MDK工程创建(寄存版和标准库版);5.通过STLINK、串口下载程序。
  • 感觉图文表述非常详尽,对刚刚接触KEIL开发工具的同学有较好的参考和借鉴意义。特原文转载,若有侵权,请联系删除。liangzc1124@163.com。

一、Keil5 MDK下载

  1. Keil 5 MDK下载地址(Keil官网)
  2. 下载步骤:
  • 选择MDK-Arm 在这里插入图片描述

  • 填写信息(除了邮箱格式要正确外,其他可以随便填写),点击Submit 在这里插入图片描述

  • 点击下载即可
    在这里插入图片描述

二、Keil5 MDK的安装

  • 双击下载的安装包
    在这里插入图片描述
  • Next
    在这里插入图片描述
  • 勾选同意许可协议,点击Next 在这里插入图片描述
  • 选择软件和芯片支持包的安装路径(安装路径不要有中文),点击Next在这里插入图片描述
  • 等待安装,几到十几分钟在这里插入图片描述
  • 点击Finsih,安装成功 在这里插入图片描述
  • 之后会自动弹出芯片支持包安装的界面,先叉掉(用这种方法下载很慢)在这里插入图片描述

三、Keil5 MDK的注册(仅供学习和测试使用)

  1. 注册机下载地址
  2. 注册步骤
  • 注册前需要先关闭windows系统的"病毒和威胁防护",步骤如下:
    • 选中win图标—>鼠标右键,点击设置;
      在这里插入图片描述
    • 隐私和安全性—>Windows安全中心;在这里插入图片描述
    • 打开Windows安全中心 在这里插入图片描述
    • 病毒和威胁防护—>管理设置在这里插入图片描述
    • 关闭实时保护、开发人员驱动器保护、云提供的保护、自动提交样本、篡改保护;在这里插入图片描述
  • 打开注册机下载地址,随便选择一个下载方式
    在这里插入图片描述
  • 如果还是被微软防火墙阻止,按下面方法操作:
    • 点击三个点—>点击保留;
      在这里插入图片描述
    • 点击下图所示图标;
      在这里插入图片描述
    • 选择仍然保留,之后就可以下载成功;
      在这里插入图片描述
  • 双击下载到的注册机(温馨提示:静音,否则会听到“灵魂小曲”)
    在这里插入图片描述
  • 如果出现下面的恶意文件的界面,点击更多信息;
    在这里插入图片描述
  • 点击仍要运行;
    在这里插入图片描述
  • 之后以管理员方式打开Keil MDK—>File—>License Management…;
    在这里插入图片描述
  • 之后按照下图具体操作,即可注册成功;
    在这里插入图片描述

四、STM32芯片支持包下载、安装;标准库下载

1. STM32芯片支持包下载(DFP,Device Famliy Pack设备系列包)

  • 芯片支持包下载链接(下载后需要先解压,之后才能双击安装)

  • 芯片支持包下载地址(Keil 官网)

  • 下载步骤

    • Products—>Device List
      在这里插入图片描述
    • STMicroelectronics—>Cortex-M3—>STM32F1Series—>STM32F103—>STM32F103C4(同一系列中不同型号的芯片下载的芯片支持包都是一样的)
      在这里插入图片描述
    • STM32F1xx_DFP
      在这里插入图片描述
    • Download / Version History —> Get Pack—>Download
      在这里插入图片描述
    • 双击下载好的文件
      在这里插入图片描述
    • 点击Next;
      在这里插入图片描述
    • 点击Finsih即可(在之后创建工程时,就有该芯片的选项了)
      在这里插入图片描述

2. 标准外设库下载(创建Keil5 MDK工程需要该文件夹中的文件)

五、STLink、JLink驱动安装

  • 通常情况下,在安装Keil时会提示安装,如果没有安装我们可以自己手动安装;

  • 在Keil的安装路径中找到下面位置,之后双击dpinst_amd64(64位电脑)后,即可安装STLink;
    在这里插入图片描述

  • 安装成功后,我们把STlink插到电脑上,在设备管理器中就可以找到STLink了
    在这里插入图片描述

  • 在Keil的安装路径中找到下面位置,之后双击dpinst_amd64(64位电脑)后,即可安装JLink;
    在这里插入图片描述

六、 USB转串口CH340驱动下载安装

  1. 下载

2.安装

  • 双击下载的安装程序;
    在这里插入图片描述
  • 点击安装;
    在这里插入图片描述
  • 出现“驱动预安装成功!”,点击确定即可。
    在这里插入图片描述

七、 Keil MDK工程创建(寄存器版和标准库版)

1. 寄存器版工程创建

  • 新建一个文件夹,命名为Project_REG,在该文件夹下创建Listings和Output两个文件夹;
    - Listings文件夹用于存放编译时产生的c/汇编/链接的列表清单;
    - Output文件见用于存放生成的调试信息、hex烧录文件、预览信息、封装库等;
    在这里插入图片描述

    • 打开Keil5,新建一个工程,命名为Project_RGE;
      在这里插入图片描述
      在这里插入图片描述
    • 选择芯片型号(根据自己所用的芯片型号进行选择)
      在这里插入图片描述
      在这里插入图片描述
    • 取消在线添加库文件(寄存器版本的工程不需要添加库文件)
      在这里插入图片描述
    • 把标准库en.stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的stm32f10x.h复制到Project_REG文件夹下;
      在这里插入图片描述
    • 把标准库en.stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm文件下的startup_stm32f10x_hd.s复制到Project_REG文件夹下;
      在这里插入图片描述
    • 在Project_REG文件夹下新建一个main.c文件
      在这里插入图片描述
    • 按照下图把文件添加到工程中
      在这里插入图片描述
      在这里插入图片描述
  • 按照下图添加头文件(stm32f10x.h)路径到工程中
    在这里插入图片描述
    在这里插入图片描述

  • 按照下图配置Target、Output、Listings选项卡;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 按下列操作,避免中文乱码
    在这里插入图片描述
    在这里插入图片描述

  • 把下列代码复制到main.c中;并stm32f10x.h中所有内容删除,并在写入一个回车;

    #include "stm32f10x.h"                  // Device header
    
    int main (void)
    {
    
    }
    
    void SystemInit(void)
    {
    	//函数体为空,目的是为了骗过编译器不报错
    }
    
    
    
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/18f0cb551e8f41c884887763caafb1df.png)
    

    在这里插入图片描述

  • 按照下图操作,修改编译器为5版本
    在这里插入图片描述

  • 按照下图进行编译,即可编译成功
    在这里插入图片描述

2. 标准库工程创建

  • 创建库函数工程所需要标准库文件及说明如下图所示:
    在这里插入图片描述

  • 创建工程需要的文件夹并添加文件

    • 创建一个存放整个工程的文件夹,命名为Project_STD;(名字可以任意取,但不要包含中文)

    • 在该文件夹下创建6个文件夹,各个文件夹的作用如下所示:

      名称作用
      Doc存放程序的说明文件,由编写程序的人添加
      Libraries存放标准库相关的文件;
      Listing存放编译器生成的列表文件(.lst)和.map文件。列表文件包含了源代码、汇编代码以及编译后的机器代码之间的对应关系;.map文件列出了程序中所有符号(如函数和变量)的地址分配;
      Output存放编译和链接后的目标文件(.o文件)、库文件(.lib文件)、可执行文件(.hex)
      Project存放keil工程文件
      User存放用户编写的文件

    在这里插入图片描述

    • 在Libraries文件夹下创建CMSIS文件夹,在CMSIS文件夹下创建CoreSupport文件夹和DeviceSupport文件夹。
      在这里插入图片描述

    • 将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport文件夹下的core_cm3.c和core_cm3.h复制到Libraries\CMSIS\CoreSupport文件夹下。
      在这里插入图片描述

    • 将解压后的标准库StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm文件夹下的startup_stm32f10x_hd.s复制到Libraries\CMSIS\DeviceSupport文件夹下。
      在这里插入图片描述
      【不同型号的单片机的启动文件夹不一样,关于启动文件的选择参考下图】
      在这里插入图片描述

    • 将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h复制到Libraries\CMSIS\DeviceSupport文件夹下;
      在这里插入图片描述

    • 在Libraries文件夹下创建STM32F10x_StdPeriph_Driver文件夹
      在这里插入图片描述

    • 将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver文件夹下的inc和src文件夹复制到Libraries\STM32F10x_StdPeriph_Driver文件夹下;
      在这里插入图片描述

    • 将解压后的标准库STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template文件夹下的main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h复制到User文件夹下;
      在这里插入图片描述

  • 打开Keil5,新建工程

    • Project —> New uVison Project… —> 存放在Project文件夹下;

      在这里插入图片描述

      • 设定工程名(不要含有中文)

      在这里插入图片描述

    • 选择单片机类别:STMicroelectronics/STM32F1 Series/STM32F103/STM32F103ZE;

      在这里插入图片描述

    • 选择单片机芯片具体型号
      在这里插入图片描述

    • 在线添加组件,keil的服务器在国外,在线添加很慢,关闭。我们之后在本地手动添加库文件;
      在这里插入图片描述

  • 在keil5中添加文件组并把文件添加到keil工程中

    • 添加文件组STARTUP、CMSIS、STDLIB、USER、DOC;

      在这里插入图片描述

    • 在这里插入图片描述

    • 把Libraries\CMSIS\DeviceSupport下的启动文件添加到STARTUP组;
      在这里插入图片描述

    • 把Project_STD\Libraries\CMSIS\CoreSupport下的core.c、Projects\Project_STD\Libraries\CMSIS\DeviceSupport下的system_stm32f10x.c添加到CMSIS组;
      在这里插入图片描述

    • 在这里插入图片描述

    • 把Project_STD\Libraries\STM32F10x_StdPeriph_Driver\src下的所有.c文件添加到STDLIB组;
      在这里插入图片描述

    • 把stm32f10x_it.c和main.c添加到USER组;

      在这里插入图片描述

      • 在这里插入图片描述

      • 在这里插入图片描述

  • 配置魔术棒选项卡

    • 勾选Target选项卡中的"Use MciroLib";把编译器版本改为version 5;如果选择version6,需要把core_cm3.c从工程中移除,具体操作如下所示:

      在这里插入图片描述

      • complier version 6和complier version 5的区别
        • complier version5的编译速度较慢,变量必须定义在函数开头;
        • complier version6的编译速度更快,变量定义可以不放在函数开头;但使用complier version6时,需要把core_cm3.c文件从工程中移除;
        • 具体操作如下所示:
          在这里插入图片描述
    • 在Output选项卡中把输出文件夹定位到Project_STD\Output下;并勾选Create HEX File;
      在这里插入图片描述

    • 在Listing选项卡中把输出文件夹定位到Project_STD\Listing下;
      在这里插入图片描述

    • 在C/C++选项卡中添加处理宏STM32F10X_HD(具体需要根据芯片的Flash大小进行选择是LD、MD、HD、XL等), USE_STDPERIPH_DRIVER、编译器查找的头文件路径;

      • 在这里插入图片描述
      • 在这里插入图片描述
      • 把下面的内容复制到mai.c中,点击编译按钮即可;
      #include "stm32f10x.h"                  // Device header
      int main(void)
      {
      
      }
      

      在这里插入图片描述

八、下载程序

1.通过STLINK下载程序

  • 硬件连接
    • 电脑通过USB线连接到ST-LINK;
    • ST-Link通过排线连接到开发板;
    • 开发板必须上电;
      在这里插入图片描述
  • Keil配置
    • 点击“魔术棒”,选择“Utilities”选项卡,查看是否勾选 “Use Debug Driver”,如果没勾选,勾选上;
      在这里插入图片描述
    • 点击“Debug”选项卡,按下图所示选择ST-Link Debugger(如果用的其他的仿真器,选择对应的即可)
      在这里插入图片描述
    • 点击“Setting”,Keil MDK就会检测到“ST-LINK”;
      • 在这里插入图片描述
      • 在这里插入图片描述
      • 点击编译,之后点击下载即可;
        在这里插入图片描述

2.通过串口ISP一键下载程序

  • ISP(In-System Programing),在系统可编程,指可以直接把程序下载到芯片中,不需要把芯片从电路板上取下来放到烧录器上;

    • 通过ISP下载时需要用到Bootloader程序,该程序固化在STM32的系统存储器中,需要通过调节Boot0、Boot1引脚的高低电平进入该程序;
    • ISP的下载步骤
      • 设置BOOT0为高电平、BOOT1为低电平;
      • 复位单片机(单片机复位后会进入Boot loader模式),通过上位机软件下载程序(如mcuisp、FlyMcu);
      • 下载完毕后,设置BOOT0为低电平,BOOT1为低电平;
      • 复位单片机,即可运行下载后的程序;
    • 以上ISP下载步骤需要来回设置BOOT引脚高低电平和复位单片机,可通过DTR、RTS来控制BOOT脚和复位脚,电路图如下图所示;
      在这里插入图片描述
  • 通过串口下载,需要开发板上带有USB转串口芯片或有USB转串口模块(如CH340)并在电脑上安装对应的驱动(如第六节所示),之后连接UASRT1进行串口下载(下图参考手册所示);
    在这里插入图片描述

    • 硬件连接

      • 电脑通过USB线连接CH340(连接成功后,电脑的设备管理器可识别到串口);
        在这里插入图片描述

      • CH340连接STM32的USART1;

    • 通过mcuisp串口软件下载程序到STM32中

      • mcuisp软件下载链接,密码:15er

        • 下载后,双击即可运行;先点击“搜索串口(X)”,选择CH340对应的COM口;—>点击“bsp",选择115200;
          在这里插入图片描述

        • 按照下图,选择hex文件;
          在这里插入图片描述

        • 选择”STMISP“;—>选择”校验“,”编程后执行“—>选择”DTR低电平复位,RTS高电平进BootLoader“;—>点击开始编程;
          在这里插入图片描述

        • 烧录成功后,如下图所示
          在这里插入图片描述

    • 通过FlyMcu 串口软件下载程序到STM32中;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值