Keil5新建STM32工程(详细图解)[通俗易懂]

Keil5新建STM32工程(详细图解)[通俗易懂]一、下载ST官方库    首先注册账号登录,然后点击产品、微控制器;如图       接着右侧的工具与软件;嵌入式软件,并选择STM32,如图。 我的是STM32F1系列,选择如图这个   获取软件   然后下载即可。 二、安装keil   不介绍。相信都安装好了。三、准备工作       新建project文件夹,并在里面新建三个文件夹,CMSIS(存放内核函数及启动引导文件)…

大家好,又见面了,我是你们的朋友全栈君。

一、下载ST官方库

      首先注册账号登录,然后点击产品、微控制器;如图

Keil5新建STM32工程(详细图解)[通俗易懂]

        接着右侧的工具与软件;嵌入式软件,并选择STM32,如图。

Keil5新建STM32工程(详细图解)[通俗易懂]

  我的是STM32F1系列,选择如图这个

Keil5新建STM32工程(详细图解)[通俗易懂]

    获取软件

Keil5新建STM32工程(详细图解)[通俗易懂]

    然下载即可。


 二、安装keil

    不介绍。相信都安装好了。


三、准备工作

      

  新建project文件夹,并在里面新建三个文件夹,CMSIS(存放内核函数及启动引导文件),FWLIB(存放库函数),USER(存放用户自己的函数),如图。

Keil5新建STM32工程(详细图解)[通俗易懂]

     解压下载的官方库,主要用到标出的两个。

Keil5新建STM32工程(详细图解)[通俗易懂]

    将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport中的文件复制到CMSIS中,再将C:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的文件全部复制到CMSIS中。最终CMSIS中的文件如图。

Keil5新建STM32工程(详细图解)[通俗易懂]

        将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver中的 inc src 复制进FWLIB文件夹。

Keil5新建STM32工程(详细图解)[通俗易懂]

   将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template中的这几个文件复制进USER,

Keil5新建STM32工程(详细图解)[通俗易懂]

      至此 准备结束。


四、新建工程


  打开keil,新建工程temp(原来有工程需要关闭),保存在刚刚新建的project里面。

Keil5新建STM32工程(详细图解)[通俗易懂]

        保存后会让选择芯片。我用的是STM32F103VE系列,所以选这个。

Keil5新建STM32工程(详细图解)[通俗易懂]

        确定之后跳出一个窗口,直接关掉(这是让选择启动引导等的,我们已经下载的库里有,所以跳过这一步)。点红线圈出的图表,然后把tegart1改为temp。删除掉SourceGroup1.

Keil5新建STM32工程(详细图解)[通俗易懂]

    依次添加CMSIS、USER、FWLIB、STARTUP,并把刚刚复制在对应文件夹下的文件添加。注意的是STARTUP要选择NewProject\CMSIS\startup\arm中的startup_stm32f10x_hd.s、startup_stm32f10x_ld.s、startup_stm32f10x_md.s三个。文件类型选择所有。  FWLIB中只需要添加src中的.c文件即可。  CMSIS中不需要添加STARTUP中的文件。 添加完毕点击OK。

Keil5新建STM32工程(详细图解)[通俗易懂]

    然后点击魔法棒,进入C/C++设置界面,在define一栏输入 STM32F10X_HD,USE_STDPERIPH_DRIVER ,并在includepath栏加入头文件路径。

Keil5新建STM32工程(详细图解)[通俗易懂]

           includepath内容如下

Keil5新建STM32工程(详细图解)[通俗易懂]

        至此,工程创建完毕。可以点击编译查看是否有错。


五、问题与调试

  编译后发现有错,因为直接用的库里的main函数,不包含#include “stm32_eval.h” 头文件,直接删除。并把其他main函数中未用内容删除,并在main函数中包含相关头文件。空白工程主函数如图。

Keil5新建STM32工程(详细图解)[通俗易懂]

 在编译,依然有错。

Keil5新建STM32工程(详细图解)[通俗易懂]

意思是引导文件太多。就是STARTUP中只能一个引导使用。因为此处用的HD,所以把另外两个 Options for File    中的include TargetBulid 和 Always Bulid 的灰色勾点掉。

Keil5新建STM32工程(详细图解)[通俗易懂]

       更改完毕后STARTUP中其他两个前面都有红色杠杠。

                                            Keil5新建STM32工程(详细图解)[通俗易懂]


再次编译,还是有错。

Keil5新建STM32工程(详细图解)[通俗易懂]

    说是 system_stm32f10x_1.c and system_stm32f10x.c 重复。

    但是检查工程栏未发现有system_stm32f10x_1.c。最后发现是包含文件中存在重复。点击如图方块,发现在CMSIS和USER中都包含有system_stm32f10x_1.c。把CMSIS中的system_stm32f10x_1.c删除。编译无错。

Keil5新建STM32工程(详细图解)[通俗易懂]


    保存一下,空白工程建立完毕!之后就可以根据手册进行开发了O(∩_∩)O哈哈~



        

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142349.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • chgrp linux,linux命令chgrp

    chgrp linux,linux命令chgrplinux 命令 chgrpLinuxch 命令用来变更文件或目录的所属群组 Linuxchgrp 命令说明 Linuxchgrp 命令用来改变文件或目录所属的用户组 该命令用来改变指定文件所属的用户组 其中 组名可以是用户组的 id 也可以是用户组的组名 文件名可以是由空格分开的要改变属组的文件列表 也可以是由通配符描述的文件集合 如果用户不是该文件的文件主或超级用户 root 则不能改变该文件

    2025年7月2日
    2
  • leetcode 链表相加_数据结构与算法链表

    leetcode 链表相加_数据结构与算法链表给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。/** * Definition for singly-linked list. * struct ListNode { * int val; *

    2022年8月9日
    4
  • 单片机视频教程转让

    单片机视频教程转让单片机的C语言视频教程转让,本套光盘购于天祥电子,花了我200大元,如今我以60元(包快递)的价格转让。有意者请与我联系。QQ:247964971 电话:13982129248讲座从最基本电路知识开始讲起,非常详细的讲解KEIL编译器的使用,课程全部用单片机的C语言讲解,从C语言的第一个主函数MAIN讲起,一步步讲解每一个语法,每条指令的意思,即使对单片机一巧不能,对C语言一无所知,通过

    2022年5月12日
    43
  • centos7 polkitd[661]: Unregistered Authentication Agent for unix-process:1781:115097 (system bus nam

    centos7 polkitd[661]: Unregistered Authentication Agent for unix-process:1781:115097 (system bus namcentos7polkitd[661]:UnregisteredAuthenticationAgentforunix-process:1781:115097(systembusname

    2022年6月16日
    396
  • pac模式与全局模式哪个好_直连模式pac模式全局模式

    pac模式与全局模式哪个好_直连模式pac模式全局模式区别一:使用流量多少不一样。PAC模式:节省流量。全局模式:流量消耗较多。区别二:运行速度快慢不一样。PAC模式:国内网站依旧走本地网络,速度快,绝大部分国外网站都走代理,速度也快。。全局模式:所有网站都走代理,访问国内网站速度变慢。区别三:访问网站覆盖面不一样。PAC模式:少部分国外网站不走代理,无法起到加速效果,甚至无法访问。全局模式:可访问全球所有网站。区别四:运行原理不一样。PAC模式:所有http/socks数据经过…

    2022年10月19日
    3
  • unity调用animation_高跟鞋踩坑

    unity调用animation_高跟鞋踩坑Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。也可以简单把Unity理解为一个游戏引擎,可以用来专业制作游戏!Unity踩坑小知识点学习Unity使用Q..

    2025年11月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号