欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 第13章.创建MDK工程-基于标准库版

第13章.创建MDK工程-基于标准库版

2024/11/30 8:42:28 来源:https://blog.csdn.net/weixin_42109443/article/details/139881999  浏览:    关键词:第13章.创建MDK工程-基于标准库版

目录

0. 《STM32单片机自学教程》专栏

13.1 新建本地工程文件夹

13.2 新建工程

13.2.1 新建工程

13.2.2 新建组

13.2-3 添加文件 

13.3 配置魔术棒选项卡

13.3.1 Output 选项卡

13.3.2 C/C++选项配置 

13.3.3 Dubug选项配置

13.4 使用标准库点亮LED

参考资料:


0. 《STM32单片机自学教程》专栏

        本文作为专栏《STM32单片机自学教程》专栏其中的一部分,返回专栏总纲,阅读所有文章,点击Link:  

STM32单片机自学教程-[目录总纲]_stm32 学习-CSDN博客     

        上节我们介绍了STM32的标准库,现在我们就可以基于标准库来建立工程了。基于标准库的模版比较固定,而且还是稍微有点麻烦的。所以我们经常是建立一个空的工程模版,后面开发的时候直接复制工程模板进行开发。现在我们就一步步的操作一下。

13.1 新建本地工程文件夹

        在本地我们新建文件夹“Led_StdLibVersion”用于存放工程。然后新建4个文件夹:“Doc”,“StdLibrary”,” System”,”User”,如图13.1-1所示。当然这个不是固定的,按自己的喜好建立即可,只要文件夹清晰,一看文件夹就知道作用是干什么的就行了。

图13.1-1 新建文件夹目录

下面针对每个文件夹需要放的文件进行说明:

Doc文件夹:

用来存放程序相关的说明文件,比如程序怎么使用,注意事项等等。

StdLibrary文件夹:

主要是把外设相关的库函数放入,即\Libraries\STM32F10x_StdPeriph_Driver下inc和src两个文件夹下的所有文件。如图13.1-2.

图13.1-2 StdLibrary文件夹

System文件:

        放入系统相关的文件,包含启动,内核及外设的寄存器映射,系统时钟配置等核心函数。主要是STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3中的文件:core_cm3.c, core_cm3.h, stm32f10x.h, system_stm32f10x.c, system_stm32f10x.h以及启动汇编文件startup_stm32f10x_md.s(注意,不同型号的启动文件不一样,md的是STM32F103C8T6型号的,选择方法前面章节有介绍,这里不再赘述。)如图13.1-3.

图13.1-3 system文件夹

User文件夹:

       存放用户编写的函数,如main.c,以及中断服务函数system_stm32f10x.c, system_stm32f10x.h以及stm32f10x_conf.h。如图13.1-4.

图13.1-4 User文件夹

 

13.2 新建工程

13.2.1 新建工程

        在我们新建的“Led_StdLibVersion”文件夹下新建工程,命名“project”。这个过程前面讲解过,这里不再赘述

13.2.2 新建组

        我们新建3个组,和我们新建的文件夹同名:“StdLibrary”,” System”,”User”。如图13.2-1所示。

图13.2-1 新建组

13.2-3 添加文件 

图13.2-2 添加文件

        如上图所示,将同名文件夹下的文件,全部添加到MDK的同名组中。添加完成后如图13.2-3所示。

13.3 配置魔术棒选项卡

13.3.1 Output 选项卡

        在Output 选项卡中把输出文件夹定位可以定位到指定文件夹,这里我一般习惯默认系统自动生成的文件夹object,这一步可不用操作。如果想在编译的过程中生成 hex 文件,可以把 Create HEX File 选项勾上。如下图:

图13.3-1 output选项卡

图13.3-2 工程组添加文件后

13.3.2 C/C++选项配置 

图13.3-3 C/C++选项卡设置

        如上图,C/C++选项开主要配置2个地方:

        ①Define配置:

        在这个选项中添加宏,就相当于我们在程序中使用“#define”定义宏的效果是一样的。但是如果放在编译器中添加这个宏,优势就是后面我们新建工程的时候只要用了这个模版,就不用再在程序文件中修改代码。在上图Define位置我们需要输入:USE_STDPERIPH_DRIVER。目的就是为了让stm32f10x.h包含stm32f10x_conf.h头文件,把所有外设都包含进来。stm32f10x.h相关代码如下图13.3-4:

图13.3-4 stm32f10x.h代码设计外设包含部分

        ②Include Paths:

        此处添加的头文件的路径,没有这一步编译的时候会报错提示找不到头文件。头文件放到了哪个文件夹,我们就把该文件夹添加到这里。

13.3.3 Dubug选项配置

图13.3-5 Debug选项卡配置

        下拉列表选择对应调试器,Settings/Flash Download里勾选Reset and Run。这个前面讲过,就不再赘述。

13.4 使用标准库点亮LED

        为区别前面2种点亮LED的方式,本次我们LED连接PB10这个IO口。

图13.4-1 简易接线图

代码如下:

#include "stm32f10x.h"                  // Device headerint main(void)
{//开启APB2,GPIOB外设时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//初始化GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);//开启PB2GPIO_ResetBits(GPIOB,GPIO_Pin_2);while (1){}}

参考资料:

        【1】哔站江协科技STM32入门教程

        【2】《STM32单片机原理与项目实战》刘龙、高照玲、田华著

        【3】《ARM Cortex-M3嵌入式原理及应用》黄可亚著

        【4】《STM32嵌入式微控制器快速上手》陈志旺著

        【5】《STM32单片机应用与全案例实践》沈红卫等著

        【6】《野火STM32开发指南》

        【7】《正点原子STM32开发指南》

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com