Keil5新建STM32工程(详细图解)_keil5新建stm32工程详细图解-程序员宅基地

技术标签: Keil新建工程  STM32工程  

一、下载ST官方库

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


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


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

    获取软件


    然下载即可。


 二、安装keil

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


三、准备工作

      

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


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


    将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中的文件如图。


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


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


      至此 准备结束。


四、新建工程


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


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


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


    依次添加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。


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


           includepath内容如下


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


五、问题与调试

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


 在编译,依然有错。


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


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

                                           


再次编译,还是有错。


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

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



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



        

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cheapter/article/details/80198168

智能推荐

如何使用FFmpeg将AVI转换为MP4_ffmpeg 转换 不重新编码-程序员宅基地

文章浏览阅读108次。使用FFmpeg将AVI转换为MP4_ffmpeg 转换 不重新编码

广工数字逻辑与EDA设计课程EDA设计实验报告_广工eda实验报告-程序员宅基地

文章浏览阅读759次,点赞7次,收藏6次。基本要求:写上实验目的、实验环境及器件、实验内容和实验结果,附上 Verliog代码、测试平台、综合结果图(RTL 视图及工艺视图) ,综合前仿真、综合后仿真、布局布线后仿真的截图,并写出心得体会。EDA 设计实验报告。_广工eda实验报告

在textarea中插入图片的办法(转载)_textarea插入图片-程序员宅基地

文章浏览阅读2.2w次,点赞3次,收藏17次。原文地址:http://www.cnxinhua.com/html/17688.html 最近一个客户要求这个功能----在textarea中插入图片,用来模仿UBB代码,但又不同于UBB,原因是UBB点击某个图片的时候,在textarea中插入的是一些特殊的字符,而他要求的是将图片插入到textarea中。太难实现了,原因是textarea中只允许插入文字,不允许插入图片,找了很长时间,最终还是_textarea插入图片

头歌-Python入门之运算符的使用_比较和逻辑运算符头歌-程序员宅基地

文章浏览阅读410次。【代码】头歌-Python入门之运算符的使用。_比较和逻辑运算符头歌

【OJ每日一练】1031 - 温度换算_1031: 温度转换-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏4次。文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习。输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。摄氏温度,浮点数,四舍五入后保留两位小数。一个华氏温度,浮点数。_1031: 温度转换

LINUXE下执行php 定时任务-程序员宅基地

文章浏览阅读39次。linuxtest.php<?php $fn='/home/root.adminssh/boz/logs';$data=rand(1,9999);$fp=fopen($fn,'wb');fwrite($fp,$data);fclose();?>linux下执行命令/usr/bin/php -f ./test.php转载...

随便推点

【python 走进NLP】pkuseg一个领域细分的中文分词工具包_领域分词-程序员宅基地

文章浏览阅读1.5k次。2019年1月份北京大学发布了中文分词工具包:pkuseg,来测试下:简介:pkuseg具有如下几个特点:多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。 我们目前支持了新闻领域,网络文本领域和混合领域的分词预训练模型,同时也拟在近期推出更多的细领域预训练模型,比如医药、旅游、专利、小..._领域分词

1工作职场上如何和讨厌的人相处 A 理智 平静 宽容,格局要大,以德御才,大才御小才_职场中怎么和爱传话的人相处-程序员宅基地

文章浏览阅读878次。1.1跟他们交流或是合作时,要注意不要情绪化,我们冷静一下再谈。不要过于斤斤计较。1.2多问“为什么?”重复对方的话,“你是说XXX”消除误会,明白意思,其实每个人都有自己的难题,讨厌是相互的。1.3时间是自己掌控的,不要因为别人的事占据自己的时间,“我先把这忙完啊",拒绝干扰。不要让自己成为一个小心眼的人,小心眼的人不管到了哪里都会遇见N个他讨厌的人。与讨厌的人相处,_职场中怎么和爱传话的人相处

notepad宏的使用,定制各种操作,比如删除一整行、从当前位置到行末用某字符替换_note pad 删除 宏录制-程序员宅基地

文章浏览阅读1.4k次。删除一整行点击菜单中的【宏】-【开始录制】。鼠标在任意一行内容上单击,使光标停在这行。然后在键盘上找到home键,按下,这时光标不管之前在哪个位置,现在光标都会出现在这行的最前面,这时按住shift键不松,再在键盘上找到end键然后按下。这时就选中这一行了。然后按两次delete键,就把当前行删除了。点击【宏】-【停止录制】。再点击【宏】-【保存录制宏】。然后根据提示,填写名称和选择快捷键的组合,在这我选择的是Ctrl+E。然后点击OK保存。可以看到保存成功了可以直接点击来使用,或者_note pad 删除 宏录制

T168_Debug222\appl\Barcode\Two\DataMatrix文件:IDMXORPK.C-程序员宅基地

文章浏览阅读933次,点赞26次,收藏22次。* None *//* None *//* None *//* None *//* None *//* None */#else#endif#endiffor (;count-- )#endif#else#endif#endiffor (;count-- )#endif。

Springcloud:. yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found char-程序员宅基地

文章浏览阅读587次。Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation)_canner.scannerexception: while scanning for the next token found character

C语言带你从实现一个通讯录开始,由“静态版”——>“动态内存版”——>“文件操作版“的万字超级详细分享,从此熟练掌握和运用基本的数组,指针,结构体, 动态内存管理和文件操作!_创建通讯录;在通讯录上实现:查找、增加、删除、修改和打印输出通讯录中所有元素等-程序员宅基地

文章浏览阅读8.1k次,点赞31次,收藏13次。如果你对独立完成一个C语言小程序还毫无头绪,那这篇文章将我将手把手和你一起完成一个通讯录项目,其中包括数组,自定义函数,结构体,指针,动态内存管理和C语言文件操作的结合应用,保姆级教学,超万字的全站最详细教程,简直不要太好,而且每部分知识点可单独任君挑选食用,走过路过,不要错过了呦!_创建通讯录;在通讯录上实现:查找、增加、删除、修改和打印输出通讯录中所有元素等

推荐文章

热门文章

相关标签