广州联享品牌网站建设,怎么把网站模板上传到自己的网站,做网站和游戏是如何赚钱,设计网站建设的合同书目录
一、工程文件介绍
1.自动生成的文件
2.自建文件
#xff08;1#xff09;USER 文件夹
#xff08;2#xff09;FWLIB 文件夹
#xff08;3#xff09;CMSIS 文件夹
二、工程创建教程
1.下载固件库
2.创建工程
#xff08;1#xff09;创建不完善的工程 …目录
一、工程文件介绍
1.自动生成的文件
2.自建文件
1USER 文件夹
2FWLIB 文件夹
3CMSIS 文件夹
二、工程创建教程
1.下载固件库
2.创建工程
1创建不完善的工程
2移植文件
3配置工程 一、工程文件介绍 如下图所示是一个 STM32 的 keil 5 工程文件其中包含了其他 keil 5 工程文件基本都包含的文件其他工程可能还有其他文件但并非基本文件。部分文件夹是用户自定义的名称可能不完全一致但内容文件应当是类似的。接下来将一一介绍其中的文件。 1.自动生成的文件 如上图所示除了文件夹 CMSIS、FWLIB、USER 外其他文件均为创建工程和编译后产生的。
最下面绿色标的 .uvprojx 文件是工程的本体双击该文件即可打开 keil 5 并进入工程。倒数第二个.uvoptx文件是工程的选项配置文件它存储了针对该工程的所有软件配置包括编译器的优化等级和警告级别、汇编器和链接器的设置、头文件包含路径、预处理宏定义、Flash 下载算法的选择等即Options for Target设置页面中的内容。若删除此文件再次打开工程时Keil 会重新生成一个使用所有默认设置的新的.uvoptx文件。顺数第二个 DebugConfig 文件夹中有一个 DBGCONF 文件它保存的是Options for Target设置页面的Debug调试设置在较新版本的 Keil MDK 中会自动生成这个文件其将调试相关的设置从传统的上面讲的 .uvoptx 文件中分离出来独立管理。若删除此文件再次打开工程时Keil会重新生成一个使用默认 Debug 设置的 DebugConfig 文件夹和DBGCONF 文件。倒数第三个 .uvguix 文件是工程的用户界面配置文件保存了用户的个性化 IDE 设置如窗口的布局和位置、工具栏的显示和隐藏、代码编辑器的字体和颜色主题、项目浏览器等视图的状态以及其他所有个性化设置。若删除此文件再次打开工程时Keil 会重新生成一个使用默认界面配置的新文件工程代码和编译设置完全不受影响只是个人界面布局需要重新设置。工程中自动生成的 Listings 文件夹和 Objects 文件夹分别和 Options for Target 设置页面中的 Output 和 Listing 设置有关可以安全删除暂不做详细介绍。
2.自建文件 这里要介绍的是USER、FWLIB、CMSIS三个文件夹。
1USER 文件夹 USER 文件夹是自己创建的文件可以用来存放用户代码例如 main.c以及其他自建源文件、头文件像如果要设计一个电机控制模块 motor_control.c/.h可以存放在这里。当然了这取决于个人习惯可以根据习惯创建其他文件夹用于存放编写完成的应用程序。
2FWLIB 文件夹 FWLIB 文件夹是自己创建的文件表示Firmware Library固件库可以用来存放外设标准库并使用 inc 子文件夹和 src 子文件夹将头文件和源文件分开文件夹内容如下图所示 上述文件中的 stm32f10x_ppp.c/.h 是对应外设的库文件有了这些库文件就可以使用对应外设的标准库函数了。其中另有 misc.c/.h 文件这里面定义了NVIC的相关配置函数如 NVIC_Init() 等以及一个配置 SysTick 的时钟源的函数。若要使用标准库开发STM32这些文件是必不可少的若使用直接操作寄存器的方式开发STM32这些文件是不需要的。
3CMSIS 文件夹 接下来介绍自建的 CMSIS 文件夹中的内容。文件夹内容如图所示 首先是 core_cm3.c/.h 文件它们是ARM公司提供的 CMSIS 核心文件它们为所有基于Cortex-M3内核的芯片提供了一套统一的、标准化的软件接口用于访问和控制内核本身的核心功能如中断控制器(NVIC)、系统定时器(SysTick)、特殊指令以及CPU寄存器从而实现了对处理器底层硬件的抽象为不同厂商的芯片库和应用程序如RTOS提供了可移植的基础。 然后是 startup_stm32f10x_hd.s 文件这是一个使用汇编语言编写的启动文件STM32 上电或者复位后首先执行这个文件负责进行最底层的硬件初始化包括初始化堆栈指针、初始化中断向量表、执行复位处理程序Reset_Handler())和跳转到 main 函数。 接着是 stm32f10x.h 文件其在标准外设库开发中扮演着基石和总枢纽的角色其作用主要有芯片型号选择与配置、定义外设寄存器结构体和内存映射、定义外设寄存器位定义等等。 下面是 stm32f10x_conf.h 文件这个文件中前半部分是标准外设库头文件的包含后半部分是断言相关的宏定义。如果不适用标准外设库开发这个文件是不需要的。 再后面到 stm32f10x_it.c/.h 文件这个文件中包含了一些异常的中断处理函数模板但都是空函数实际上我们可以在其他地方定义中断服务函数所以这个文件不是必要的。但可以保留以集中管理中断服务程序取决于个人。 最后是 system_stm32f10x.c/.h 文件这个文件中有大量的和时钟配置有关的函数定义是非常重要的一个文件即使是使用直接操作寄存器的方式开发STM32也建议保留当然也可以自己自定义初始化时钟代码。 二、工程创建教程
1.下载固件库 首先搜索“ST官网”进入中国大陆地区官网 进入官网后依次选择“工具与软件”、“嵌入式软件”、“STM32嵌入式软件”。如下图所示 接着在网页左侧选择“STM32标准外设软件库”并选择需要的芯片系列我将以STM32F103RCT6为例选择“F1”。如下图所示 至此就可以选择版本下载固件库了。下载需要登陆没有注册过的可以注册一个不难。下载界面如下图 得到的文件包打开后如下图所示其中主要需要第二个 Libraries 文件夹中的文件。第一个_htmresc文件夹是一些官方图标不重要。第三个 Project 文件夹包含各个外设的使用示例和空的工程模板有耐心的话可以做参考用。第四个Utilities文件夹是ST评估板的相关示例和驱动如果有用ST官方指定的开发板的话可以使用。最下面的stm32f10x_stdperiph_lib_um文件是一个已编译的HTML帮助文件是标准外设库的官方离线文档用于查询所有库函数的详细用法、参数和示例代码可以做学习使用。 2.创建工程 记住如下步骤即可自己手动创建基于标准库开发的STM32 keil工程而不用再跟着教学视频做。现在以STM32F103RCT6为例创建工程。 首先记住下面这些文件这些是建议工程要包含的文件
① stm32f10x.h② stm32f10x_conf.h③ system_stm32f10x.c/.h④ stm32f10x_it.c/.h⑤ core_cm3.c/.h⑥ startup_stm32f10x_hd.s⑦ 外设标准库文件 现在创建工程分成三大步一是使用 keil 5 生成一个不完善的工程二是添加上述文件三是做简要配置。
1创建不完善的工程 第一小步创建一个工程文件夹可以在桌面等处创建如下图所示 第二小步在这个文件夹中创建三个文件夹CMSIS、FWLIB、USER认为麻烦也可以只创建两个文件夹FWLIB、USER然后把上述①~⑦的文件全塞 FWLIB 里。怎么做完全取决于个人。如下图所示 第三小步打开keil 5 MDK选择 “Project”、“New μVision Project”。然后选择进入刚刚创建的工程文件夹内。 第四小步在弹出的芯片选择界面选择对应的芯片系列我这里选择“STM32F103RC”。如果没有下载芯片支持包的可以点这里的 “Pack Installer” 进行下载。选择完芯片直接关掉弹出来的“Manage Run-Time Environment” 界面这个界面若感兴趣的可以自己去了解下。 2移植文件 打开从ST官网下载的外设固件库打开Libraries文件夹。得到如图所示页面 第二个文件夹 STM32F10x_StdPeriph_Driver 里面的就是上面标的第七点“外设标准库文件”了。打开将里面的inc文件夹装着外设标准库头文件和src文件夹装着外设标准库源文件直接复制粘贴到我们创建的FWLIB文件夹中。如果认为有哪些外设根本不用的话也可以将其源文件和头文件从中剔除。 然后打开固件包的CMSIS文件夹可以在其中找到这几个需要的文件①、③、⑤、⑥都比较好找自己找一下也好更多的了解一下这个固件包的文件结构。要注意的是其中⑥ startup_stm32f10x_hd.s 文件从STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup来到如下这个页面 这里分为不同编译器需要使用的启动文件第一个是keil中的ARMCC/ARMClang编译器我们创建的是keil工程需要选择这里面的启动文件。下面分别是GCC编译器、IAR的ICCARM编译器和某个编译器对应所需的启动文件。至于里面的启动文件选择什么这个取决于芯片的FLASH容量使用一款芯片时应当对自己这款芯片的FLASH容量大小有所了解随便一搜即有结果这里先不多介绍。 剩余② stm32f10x_conf.h、④ stm32f10x_it.c/.h 在这个文件夹里是没有的如果开发不是那么深的话④是没必要的其实中断处理程序放在哪里都行这个文件主要是给了一些中断处理程序模板。但我们还是都加入进去吧。 ②和④可以在固件包中的工程模板中找到。如下图所示 将①②③④⑤⑥这些文件都放入我们创建的CMSIS文件夹中后现在工程已经完整了接下来只需要简单配置一下工程即可。
3配置工程 点击“Manage Project Items”图标如下图所示 在弹出的页面中将自动生成的 Source Group 1 组双击改名为 CMSIS并增加两组 FWLIB 和 USER对应我们自己创建的三个文件夹。然后选中某一组在右侧点击 “Add Files”,将对应文件夹中的所有文件加入到组中。注意文件夹不能被加入然后要将所有源文件、头文件和启动文件加入到组中。需要选择文件类型否则有的文件不显示如下图所示 然后点击 “Options for Target”选择 “C/C”页面加入头文件包含路径点击右侧的三个点。如下图所示 有头文件的文件夹路径都要包含包括USER、CMSIS、FWLIB的inc文件夹这三个地方。如下图所示 然后还是同样的 “C/C” 页面在上方的 “Define” 框中写入 USE_STDPERIPH_DRIVER 和 STM32F10X_HD使用英文逗号隔开如下图所示 前者 USE_STDPERIPH_DRIVER 宏是使用标准外设库必须要定义的这在 stm32f10x.h 文件中有说明如下图所示 当然了也可以不在上面的预处理器定义框中去定义可以在文件中定义只是建议还是在预处理器中定义的好。 至于第二个宏 STM32F10X_HD显然这和芯片类型有关HD和前面的FLASH容量大小有关同样在stm32f10x.h文件中显示需要定义这个宏如下图所示不定义这个宏编译时将会报错。不过不在上面说的预处理器中预定义也不会报错这可能是在选择了芯片之后在哪里会自动定义这个宏。所以不定义这个宏也没问题。 至此我们已经完成了工程的创建可以自己编写 main 文件和其他源文件、头文件并放入 USER 组中来开发 STM32 了。 最后建议有时间还是自己去钻研一下上面谈到的文件①~⑦文件并不算太难看懂看完会对 STM32 有更深的理解这其实也是学习 STM32 的一个必要的过程。