10.新建工程—库函数版—[野火]STM32HAL库开发实战指南——基于野火F7与H7系列开发板文档

[野火]STM32HAL库开发实战指南-F7与H7系列

贡献与投稿

常见问题

·CPU:STM32F767IGT6·主频:216M

了解STM32的HAL库文件之后,我们就可以使用它来建立工程了,因为用库新建工程的步骤较多,我们一般是使用库建立一个空的工程,作为工程模板。以后直接复制一份工程模板,在它之上进行开发。

版本说明:MDK5.15(MDK即KEIL软件)

版本号可从MDK软件的“Help–>AboutuVision”选项中查询到。

教程文档用的是F767的配置,芯片配置可按板子所选

为了工程目录更加清晰,我们在本地电脑上新建一个“工程模板”文件夹,在它之下再新建6个文件夹,具体如下:

表111工程目录文件夹清单

名称

作用

Doc

用来存放程序说明的文件,由写程序的人添加

Libraries

存放的是库文件

Listing

存放编译器编译时候产生的C/汇编/链接的列表清单

Output

存放编译产生的调试信息、hex文件、预览信息、封装库等

Project

用来存放工程

User

用户编写的驱动文件

图111工程文件夹目录

在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:

表112工程目录文件夹内容清单

工程说明.txt

CMSIS:里面放着跟CM7内核有关的库文件

STM32F7xx_HAL_Driver:STM32外设库文件

暂时为空

stm32f7xx_hal_conf.h:用来配置库的头文件

main.c:main函数文件

打开KEIL5,新建一个工程,工程名根据喜好命名,我这里取LED-LIB,保存在ProjectRVMDK(uv5)文件夹下。

图112在KEIL5中新建工程

这个根据你开发板使用的CPU具体的型号来选择,M7挑战者选STM32F767IGT型号。如果这里没有出现你想要的CPU型号,或者一个型号都没有,那么肯定是你的KEIL5没有添加device库,KEIL5不像KEIL4那样自带了很多MCU的型号,KEIL5需要自己添加,关于如何添加请参考《如何安装KEIL5》这一章。

图113选择具体的CPU型号

等下我们手动添加库文件,这里我们点击关掉。

图114库文件管理

在新建的工程中添加5个组文件夹,用来存放各种不同的文件,文件从本地建好的工程文件夹下获取,双击组文件夹就会出现添加文件的路径,然后选择文件即可。

表113工程内组文件夹内容清单

STARTUP

存放汇编的启动文件:startup_STM32F767xx.s

STM32F7xx_HAL_Driver

stm32f7xx_hal.c

stm32f7xx_hal_ppp.c(ppp代表外设名称)

USER

用户编写的文件:

main.c:main函数文件,暂时为空

stm32f7xx_it.c:跟中断有关的函数都放这个文件,暂时为空

DOC

工程说明.txt:程序说明文件,用于说明程序的功能和注意事项等

图115如何在工程中添加文件夹

先把上面提到的文件从STHAL库中复制到工程模版对应文件夹的目录下,然后在新建的工程中添加这些文件,双击组文件夹就会出现添加文件的路径,然后选择文件即可。

图116如何在工程中添加文件

图117设置文件是否加入编译

这一步的配置工作很重要,很多人串口用不了printf函数,编译有问题,下载有问题,都是这个步骤的配置出了错。

图118添加微库

图119配置Output选项卡

图1110配置Listing选项卡

图1111配置C/C++选项卡

在这个选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模版,就不用源文件中修改代码。

“IncludePaths”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可。(请使用图中的方法用文件浏览器去添加路径,不要直接手打路径,容易出错)

本书使用的仿真器是Fire-Debugger,可下载和仿真程序。Fire-Debugger支持XP/WIN7/WIN8/WIN10这几个操作系统,无需安装驱动,免驱,使用非常方便,具体配置见如下图。

图1112Debug中选择CMSIS-DAPDebugger

图1113Utilities选择UseDebugDriver

图1114Settings选项配置

这一步的配置也不是配置一次之后完事,常常会因为各种原因需要重新选择,当你下载的时候,提示说找不到Device的时候,请确保该配置是否正确。有时候下载程序之后,不会自动运行,要手动复位的时候,也回来看看这里的“ResetandRun”配置是否失效。M7挑战者用的STM32的FLASH大小是1M,所以这里选择1M的容量,如果使用的是其他型号的,要根据实际情况选择。

图1115选择芯片型号

一个新的工程模版新建完毕。

下面对各个版本的差异进行讲解,除以下提到的差异外,工程的其它内容完全一致,在实际操作时请注意切换版本后进行配置。

在C/C++选项配置中的部分宏和代码优化等级是不一样的,其中代码优化等级通常根据自身的需要调整,此处不进行整理。具体见下图和表格。

THE END
1.打造属于你的网站:最佳建站软件推荐与实用指南seowordpress例如,如果你打算开设一个电商网站,确保所选软件支持在线支付、购物车和产品展示等功能。而如果你只是想建立一个博客,那么基本的内容管理功能就足够了。1.3 设计模板一个优秀的网站设计能吸引用户的眼球。选择一个提供多样化模板的建站软件,可以让你在设计上有更多的选择。确保这些模板是响应式的,以便在不同设备上都能https://m.163.com/dy/article/JINS2GBU05569BV4.html
2.Libraries)机制,构建脚本复用率得到了大幅度提高,并且开发人员又因为此项目使用了Jenkins共享类库(Shared Libraries)机制,构建脚本复用率得到了大幅度提高,并且开发人员可以方便的扩展更多的功能,满足不同构建部署场景的需要,此项目非常适合那些开发人员自己管理构建部署的团队,通过Jenkins-Json-Build项目组织对构建部署过程进行了统一的管理和监督,又让每个项目有足够的灵活性和自主权https://gitee.com/beijing-guangyu-online/jenkins-json-build
3.EndNote7.0使用中文详细教程一、在线搜索文献:直接从网络搜索相关文献并导入到Endnote的文献库内 二、建立文献库和图片库:收藏,管理和搜索个人文献和图片、表格 三、定制文稿:直接在Word中格式化引文和图形,利用文稿模板直接书写合乎杂志社要求的文章 功能一 在线搜索文献 Endnote利用Z39.50信息获取协议可以方便进入全世界绝大多数的文献数据库,并将https://general.medsci.cn/article/show_article.do?id=f8fa26e2951
4.英语四级作文范文(附历年作文)In conclusion, online libraries are one of the greatest inventions in this modern world. We can not only enhance the efficiency of acquiring information and knowledge but also enjoy the technological innovation. 在线图书馆越来越受欢迎。越来越多的人通过手机和电脑阅读书籍和查阅所需内容,以供研究。 https://www.oh100.com/kaoshi/cet4/zuowen/476289.html
5.Knockout:HomeSimplifydynamicJavaScriptUIswiththeModel-View-ViewModel(MVVM)pattern Download v3.5.1 - 25kb min+gz release notes Keyconcepts DeclarativeBindings Easily associate DOM elements with model data using a concise, readable syntax AutomaticUIRefresh When your data model's state changes, your UI updates automathttps://knockoutjs.com/
6.《都铎王朝第一季》电视剧全集免费在线观看完整版英语《《都铎王朝第一季》电视剧全集免费在线观看完整版英语_其它美剧》剧情简介:新能源汽车哪家KOL口碑最好快来看看你心中的第一是它吗原创2022-11-01 15:36·新榜一众新能源汽车品牌中哪家新能源汽车品牌KOL好评最多又是哪家品牌KOL讨论最多近日新榜发布了《2022新能源汽车品牌KOL口碑报告》统计了各新http://www.catholicsh.org/osxev9tutcs0oyl/20240724.aspx
7.分享13个可以在线制作360度全景视图的网站分享13 个可以在线制作 360 度全景视图的网站 英文| https://niemvuilaptrinh.medium.com/14-libraries-create-360-degree-views-for-website-c4c177ef7d1b 翻译| 杨小爱 什么是 360 度视图?如今随着科技的强劲发展,您可以轻松轻松地拍摄全景图像(360 度)。但是,在您的网站上显示这些图像确实很困难,因为它https://cloud.tencent.com/developer/article/1901587
8.QtC++拖放事件探索之旅:多方法深入解析(2)文本编辑器:在文本编辑器中,拖放事件可以用于实现文本的选取、移动和复制。用户可以方便地拖放选中的文本到目标位置,提高编辑效率。 (3)图片处理软件:在图片处理软件中,拖放事件可以用于添加、调整和组合图像。用户可以将图片文件直接拖放到编辑区域,实现快速的图片导入和排版。 https://developer.aliyun.com/article/1463851
9.theinternetarchive七色猫视频Please add this domain to one of your websites. Whoops, looks like this domain isn't yet set up correctly. If you're the site owner, please check your site management tools to verify your domain settings.http://archive.org/
10.Dart在线运行,dart在线编译Dart教程 - Dart在线运行,dart在线编译http://dart.jsrun.net/
11.2020年9月英语四级第一套线上图书馆第二套写作在线词典参考范文线上图书馆的优点数不胜数。首先,线上图书馆可以为更多的读者提供更加丰富的阅读书目。偏远乡村的人们可以和住在大城市的人阅读一样多的书籍。此外,在线的形式让他们可以随时随地方便地阅读。同时,不可忽视的是,线上图书馆也会导致人们的阅读时间减少,因为大多数人在网上阅读时能够集中注意力的时间往往更短。 https://m.kaobiguo.net/news/866861.html
12.000个植物公共RNAseq文库的在线搜索平台近日,南方科技大学生命科学学院生物系植物与食品研究所副教授翟继先课题组发布了可以方便快速查询~45,000个植物公共RNA-seq文库的在线资源(PPRD,http://ipf.sustech.edu.cn/pub/plantrna/),相关成果以“PPRD: a comprehensive online database for expression analysis of ~45,000 plant public RNA-Seq libraries”https://newshub.sustech.edu.cn/html/202203/41873.html
13.自然语言处理开源工具介绍系列一:英文NLP工具NLTK详解及在线测试在使用NLTK的过程中,发现当前版本的NLTK已经提供了相应的斯坦福文本处理工具接口,包括词性标注,命名实体识别和句法分析器的接口,不过可惜的是,没有提供分词器的接口。在google无果和阅读了相应的代码后,我决定照猫画虎为NLTK写一个斯坦福中文分词器接口,这样可以方便的在Python中调用斯坦福文本处理工具。https://www.52nlp.cn/?p=13108
14.EigenNote that currently, a few features rely on third-party code licensed under the LGPL: constrained_cg. Such features can be explicitly disabled by compiling with the EIGEN_MPL2_ONLY preprocessor symbol defined. Furthermore, Eigen provides interface classes for various third-party libraries (usually https://eigen.tuxfamily.org/
15.在线画图平台千千万,总有一款适合你是不是很easy?操作方便,拖拽即可,美中不足的是画图的类别有点少。 其他类似的在线画图网站也很好用,比如GetBulbhttp://www.getbulb.com/ GetBulb 操作比rawgraphs略麻烦 5、Gwas Structure在线画图神器pophelper http://pophelper.com/ 输入admixture结果文件就可以 https://www.jianshu.com/p/b4992f48e06b
16.在线matlab代码学习神器OctaveOnline(在线使用matlab)Octave Online(在线使用matlab) Octave与MATLAB完全兼容,免安装使用方便。注册和非注册功能会有不同,如下: 未注册,功能简洁: 注册后,功能全面: 心动不如行动,赶快试试看~ 附录: Octave Online: Free Interface compatible with MATLAB官方网址 答疑部分:https://www.huoban.com/news/post/19345.html