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.圣天诺SentinelLDK7.10升级说明新闻资讯对于Sentinel LDK的每个新版本,只有当该版本的RTE包含显著的安全性和可靠性增强时,才会更新所需的最小版本号。 例如:使用7.9或7.10版定制供应商库保护的应用程序所需的RTE最低版本仍然是RTE 7.90版,因为这个RTE版本包含最新的重要安全性和可靠性增强。RTE的后续版本包含不太重要的增强和修复。 http://www.wiseauth.com/2019/information_0903/100.html
2.sonarqube7.8代码检查+gitlab+postgres12集成jenkins单位,为每一个包/类自动生成 包的依赖程度,稳定性,可靠度等 的评价报告,根据这些报告,我们可以得到包或类之间的依赖关 系,并分析出包的稳定程度,抽象程度,是否存在循环依耐关系等 。 可以根据JDepend给出的报告数据,分析出我们的包是否是 可靠的,稳定的,健壮的包,是否符合面向对象的设计原则。 https://blog.csdn.net/Michaelwubo/article/details/125677819
3.QtC++拖放事件探索之旅:多方法深入解析(3)自定义拖动源和放置目标的行为:通过重写dragEnterEvent()、dragMoveEvent()、dragLeaveEvent()和dropEvent()等方法,可以实现对拖放事件的细粒度控制。例如,可以根据拖动数据的类型和格式决定是否接受拖放事件,或在拖动过程中实时更新放置目标的外观。 (4)自定义拖动操作类型:在启动拖动操作时,可以通过QDrag类的exec(https://developer.aliyun.com/article/1463851
4.电脑词典O光盘库,光盘存储库 Optical Libraries 光盘库系统的设计是为了将通常存储在微缩胶卷或纸张上的数据存储到可以被网络用户快速访问的联机设备上。一个光盘库也可以提供磁带后援系统,或在一个层次式管理系统(HMS)中作为将文件迁移到磁带上的中间存储设备。在一个HMS系统中,较少使用的文件,或已经标记为迁移的文件将从磁盘http://www.360doc.com/content/07/0410/15/9787_440144.shtml
5.在线AOIPCBA短路检测设备在线AOI检测仪价格,厂家,求购,使用说明在线AOI自动光学检测仪ZS-600B 在线AOI PCBA短路检测设备 在线AOI检测仪性能特点 快速的检测速度.(Precise fast detection speed) l 智能高清晰数字CCD相机,图像质量稳定可靠.(Intelligent hd digital CCD camera,the image quality is stable and reliable) https://cn.made-in-china.com/gongying/10zxcvbnm-xSvQyZrCMlhj.html
6.EndNote7.0使用中文详细教程一、在线搜索文献:直接从网络搜索相关文献并导入到Endnote的文献库内 二、建立文献库和图片库:收藏,管理和搜索个人文献和图片、表格 三、定制文稿:直接在Word中格式化引文和图形,利用文稿模板直接书写合乎杂志社要求的文章 功能一 在线搜索文献 Endnote利用Z39.50信息获取协议可以方便进入全世界绝大多数的文献数据库,并将https://general.medsci.cn/article/show_article.do?id=f8fa26e2951
7.bookstoreadandmorestudentsfromfriendsandlibrariesI find books to read and more students from friends and libraries, download or read online as well as in school reading fewer students in the reading room, 翻译结果4复制译文编辑译文朗读译文返回顶部 I found that buying a book and read from a friend or libraries of many students, and downloahttp://eyu.zaixian-fanyi.com/fan_yi_7244776
8.Libraries)机制,构建脚本复用率得到了大幅度提高,并且开发人员在上述情况下我们开发了Jenkins-Json-Build项目,该项目适合于有一些编程经验的人员在不需要了解Jenkins构建脚本如何编写的情况下,通过简单的配置Json文件,就可以轻松完成一个项目的获取源码、单元测试、代码检查、编译构建、部署等步骤,实现一个典型的CI过程,又因为此项目使用了Jenkins共享类库(Shared Libraries)机制,构建脚https://gitee.com/beijing-guangyu-online/jenkins-json-build
9.libraries是什么意思libraries在线翻译英语读音用法例句libraries 基本词汇 英['la?br?ri]美['la?breri] n.图书馆;藏书;书房 Created with Highcharts 3.0.2释义常用度分布图海词统计 图书馆 藏书 书房 名词复数:libraries library的英文翻译是什么意思,词典释义与在线翻译: 详尽释义 n.(名词) 文库,书库http://dict.cn/libraries
10.libraries是什么意思libraries在线翻译读音用法例句含义libraries n.图书馆( library的名词复数 );图书室 网络函数库;元件库;图书馆事业;间图书馆 双语例句 1 . It seems a false economy to me to cut down onlibraries. 在我看来,减少图书馆的数量并不是真正的节约。 来自柯林斯例句 2 . I turned to bookshops andlibrariesseeking information and found nonehttps://www.chazidian.com/dict/w/libraries/
11.DeepL翻译:全世界最准确的翻译即时翻译文本&完整的文档文件。为个人和团队提供准确的翻译。每天有数百万人使用DeepL进行翻译。https://www.deepl.com/
12.《GettingStartedwithLLVMCoreLibraries》(BrunoCardoso《Getting Started with LLVM Core Libraries》(Bruno Cardoso Lopes,Rafael Auler)内容简介:This book is intended for enthusiasts, computer science students, and compiler engineers interested https://e.jd.com/30370568.html
13.Id教程:CCLibraries真好用!以及色彩理论!视频在线观看这次介绍一个在所有 Adobe 软件里都可以使用的功能:CC Libraries。因为从 Adobe Color 这个网站上可以一键添加颜色入库(CC Libraries),很方便!所以后半部分给出了一些选色上的小建议。希望对大家有帮助吧~https://www.56.com/u33/v_MTU5NTUxNDE0.html
14.LibrariesBuriesLiesJayzik高音质在线试听酷狗音乐为您提供由Jayzik演唱的高清音质无损Libraries Buries Liesmp3在线听,听Libraries Buries Lies,只来酷狗音乐!https://www.kugou.com/mixsong/jx5tibd.html
15.GitHubNote that this is not a standard feature for all JWTs - only JWEs - and is not likely to be supported by other JWT libraries for non-JWE tokens. JJWT supports compression for both JWSs and JWEs, however. Please see the main Compression section to see how to compress and decompress http://www.jsonwebtoken.io/
16.LibrariesSuite10.5或更高版本》.pdf文档全文免费阅读在线看免费在线预览全文 《Agilent IO Libraries Suite10.5 或更高版本》.pdf Agilent IO Libraries Suite 15.0 或更高版本 用于安捷伦化学工作站 B.04.02 版或更高版本的安 装和配置说明 IO Libraries Suite 15.0 Agilent Technologies 注意 ? 安捷伦科技有限公司, 2004-2009, 声明 安全警告 2010 本书内容如有改变,恕https://max.book118.com/html/2015/1021/27706411.shtm
17.AndroidStudio导入ExternalLibraries腾讯云开发者社区导入本地Libraries 拷贝gson-2.3.1.jar(gson-2.3.1.jar为例)到 app/libs 目录下 在app/build.gradle的 dependencies 中增加一行:compile files('libs/gson-2.3.1.jar') 在线导入Libraries File > Project Structure > Dependencies Tab > (+号)Add library dependency https://cloud.tencent.com/developer/article/1352772
18.英语四级作文(精选46篇)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.ruiwen.com/zuowen/qitaleiyingyuzuowen/6421925.html