找手机游戏就上融易行 专业手游媒体门户网站!

游戏更新 | 安卓游戏 | 苹果游戏 | 推荐游戏 | 软件更新 | 文章更新 | 热门文章 | 推荐文章

精英库(精英库扰动策略)

时间:2023-10-27 11:41:36    编辑:azu

精英库

介绍:

准备:STM32固件库包。

ST:STM32 F10 x _ StdPeriph _ Lib _ v 3 . 5 . 0官方提供的STM 32固件库包(文件夹名)

简介:

文件夹包括:库、项目、实用程序和其他文件夹。

精英库

Libraries文件夹包含:CMSIS,STM32F10x_StdPeriph_Driver(包括固件库核心的所有子文件夹和文件,在构建项目时会用到)。

CMSIS文件夹:用于启动文件。

| _ _ _ _ _ _ _ core _ cm.c,core _ cm . h[…libraryscmsmc 3 core support]:CMS is核心文件,提供M3内核的接口。

| _ _ _ _ _ _ | _ _ _ _ _ _ _ _ STM 32 F10 x文件夹[…libraryscmiscm3 device support stst STM 32 F10 x]:启动文件、比较基本寄存器定义和中断向量定义的文件,包含:

1.system_stm32f10x.c和system_stm32f10x.h的函数:设置系统和总线时钟,其中包含SystemInit()函数,系统启动时会调用该函数来设置系统的整个时钟系统。

2.stm32f10x.h:这个文件很重要。只要你在开发STM32,你就应该经常检查这个文件的定义。打开这个文件,可以看到里面有很多结构和宏定义。这个文件主要是关于系统寄存器定义的声明和内存操作的打包。这里怎么声明,怎么封装内存操作。

3.启动文件夹:启动文件,包含8个启动文件。根据不同容量的芯片,启动文件是不同的。

小容量:flash ≤ 32k = = "LD.s "

中等容量:64k ≤ flash ≤ 128k = = "MD.s。

大容量:256k ≤ Flash = = "HD.s "

启动文件用于初始化堆栈,定义中间向量表和中断函数。Reset_Handler中断函数是唯一已经实现的中断处理函数,其他中断函数基本都是无限循环。当我们的系统启动时,会调用Reset_handler。启动文件要引导到主函数中,在进入主函数之前,要先调用SystemInit系统初始化。

STM32F10x_StdPeriph_Driver文件夹:是STM32固件库的源文件。

| _ _ _ _ _ _ _ _ _ _ _ _ _ _ Inc:它存储stm32f10x_xxx.h头文件。

精英库

| _ _ _ _ _ _ _ _ _ _ _ _ src:存储stm32f10x_xxx.c格式的固件库源文件。

(各。c文件对应相应的。h文件,也是固件库的核心文件,每个外设对应一组文件。)

项目文件夹包含:STM32F10x _ StdPeriph _ Examples,STM32F10x _ StdPeriph _ Template。

STM32F10x_StdPeriph_Examples文件夹:ST官网提供的固件实例的源代码(可以参考修改这个官方提供的实例来快速驱动自己的外设)。

STM32F10x_StdPeriph_Template文件夹:工程模板。

Utilities文件夹包含:官方评估板的一些对应源代码(可以忽略)。

Stm32f10x_stdperiph_lib_um文件:固件库帮助文档(英文版)

建立STM32F1工程模板

第一步

在计算机的目录中创建文件夹:Tempalt-单击以创建子文件夹:USER。

第二步

打开MDK软件(如果之前已经打开过项目,点击菜单选项卡项目-关闭项目)-菜单选项卡项目-Newuvision项目……-导航到文件夹用户——刚创建——点击保存,如下图:

这时会弹出选择芯片型号的界面,需要在此之前添加(此处不介绍)

选择与自己主板对应的芯片型号。

点击“确定”弹出如下界面(可以添加自己的组件,方便开发环境的构建),直接点击“X”或“取消”。

这将创建下图所示的框架,您需要添加启动代码和。c文件。

而如果查看对应目录下的用户文件夹,会自动创建一些文件,如下图所示:

以下是上述文件的简要说明:

Tempalte.uvprojx文件(带有Keil图标的文件):是工程文件,非常关键。

清单,对象文件夹:用于存储编译期间生成的中间文件。现在它是空的,可以删除。[我们稍后将在新创建的文件夹OBJ中设置它们]

第五步

在Tempalte文件夹下再创建三个文件夹:CORE,OBJ,STM32F10x_FWLib。

核心文件夹:存储核心文件和启动文件。

OBJ文件夹:存储编译过程文件和十六进制文件。

[如前所述,用户文件夹下的列表文件夹和对象文件夹将被设置在OBJ文件夹中。]

STM32F10x_FWLib文件夹:存放ST官方提供的库函数源文件。

用户文件夹(之前创建的文件):用于存储工程文件,main.c,system_stm32f10x.c等。

如下图所示:

第六步

将STM 32 F10 x _ StdPeriph _ Driver)[…libraries STM 32 F10 x _ StdPeriph _ Driver]下固件库文件夹中的inc和src文件夹复制到STM32F10x_FWLib文件夹中。

Inc文件夹存储:固件库。c文件。

src文件夹存储:固件库。h文件。

(一。c文件和一个。每个外围设备的h文件)

第七步

将固件库文件夹下CoreSupport文件夹下的CORE_cm3.c和core_cm3.h的文件)[… libraryscmsiscm3CoreSupport]复制到CORE文件夹。

将固件库文件夹[…libraryscmsmc 3 device supports tst STM 32 f 10 x startup arm]中arm文件夹下的startup_stm32f10x_hd.s文件(启动文件)复制到核心文件夹。

第八步

将固件库文件夹中STM32F10x文件夹下的三个文件(STM32F10x.h,system_stm32f10x.c,system_stm32f10x.h)复制到用户文件夹中。

将固件库文件夹中的四个文件(main.c、stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h)复制到用户文件夹中。

至此,我们已经复制了固件库中需要的所有文件。

接下来,我们需要将刚刚复制的所有文件添加到我们的项目中。在Projectc窗口下右键单击“目标1”-“管理项目”。

将“Target1(双击)”修改为“Tempalte”,“SourceGroup1(双击)”修改为“USER”,并在下面添加“CORE”和“FWLIB”,如下图所示。

将文件添加到不同的文件夹。

1.选择用户文件夹,点击“添加文件…”,找到用户目录,添加三个文件:system_stm32f10x.c、stm32f10x_it.c、main.c

二、选择核心文件夹,点击“添加文件……”,找到核心目录,添加两个文件(注意需要选择Allfiles作为文件类型才能看到所有后缀文件)core_cm3.c,startup_stm32f10x_hd.s:

3.选择FWLIB文件夹,点击“添加文件...”,在STM32F10x_FWLib目录下找到src文件夹,添加其所有文件(使用快捷键Ctrl+A全选)。

这将把所有文件添加到项目中。

接下来就要编译了,编译过程会产生很多中间文件(垃圾文件),所以要先设置好。

选择魔棒(options for target…)-选项卡“输出”-检查“创建XFile”。

选择魔棒(optionsfortarget …)-tab「输出」-「选择folderforObjects …」(默认位于我们刚刚提到的Objects文件夹和前面提到的mobile obj文件夹)。

再次点击“确定”,表示路径设置完成。

第十一步

这时你可以尝试编译,你会发现编译器会报错,错误头文件路径找不到。

原因有二:①头文件根本不存在。②项目中不包含头文件路径。

然后,我们需要在项目中包含头文件路径:

选择魔棒(options for target…)-tab“C/c++”-点击“IncludePaths”右边的按钮“…”-点击“新建”或双击-点击按钮“…”,选择以下三个路径(包括头文件的路径,必须包含到最后一级)。

1、…核心

2、…用户

3、…STM32F10x_FWLibinc

这三个文件夹都包含头文件,所以必须包含三个路径。

步骤12

这时候你可以试着编译一下,你会发现编译器会报错,报错有很多重复的定义。这是宏定义“stm32f10x _ HD,use _ stdperiph _ driver”的需要。(注意不要出错=)

选择魔棒(options for target…)-tab“C/c++”-在“预处理程序符号”下“定义”旁边的空格,输入:stm32f10x _ HD,use _ stdperph _ driver-点击“确定”。

现在重新编译,你会发现还是有错误。就是因为主功能的问题。我们需要修改main函数,这样错误就不会被报告。可以选择:项目-用户-双击main . c-全选(Ctrl+A)+删除粘贴下面的程序:

最新游戏

玩家评论