IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> stm32hal库工程模板搭建 -> 正文阅读

[嵌入式]stm32hal库工程模板搭建

使用HAL库需要为工程准备许多相关文件,也就是创建HAL库的工程模板。工程模块没有统一的格式, 通常是根据多年的开发经验和使用习惯总结出来的。
在这里插入图片描述

各文件夹、文件说明如下:
? Core:存放从SDK文件夹抽取的部分可能会修改的核心文件;
? Driver: 存放用户编写的外设驱动文件;
? Main: 存放主函数文件;
? Project: 存放Keil工程文件,包含目标二进制文件;
? SDK:存放CMSIS和HAL库;
? Clean.bat:Windows脚本,用于清理Project里Keil生成的工程文件;
? Readme.txt:该工程的说明信息
“SDK”目录的内容来自配套资料“2_原厂资料\7.0_en.stm32cubef1(原厂固件包示例源码).zip”,即里 面“Drivers”目录下的“CMSIS”和“STM32F1xx_HAL_Driver”。
“Core”目录的内容来自“CMSIS\Device\ST\STM32F1xx\Source\Templates\arm\startup_stm32f103xb.s”;
“STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Templates\”下的“Src\system_stm32f1xx.c”、“Src\stm32f1xx_it.c”、“Inc\stm32f1xx_it.h”、“Inc\stm32f1xx_hal_conf.h”;还需要手动创建“stm32f1xx_clk.c”
和“stm32f1xx_clk.h”,这两个文件内容是一些时钟初始化,参考“1_工程模板”的工程代码。
“Driver”目录存放用户编写的外设驱动代码,比如LED灯驱动,这里示例不涉及外设,暂为空。
“Main”为存放主函数文件目录,创建“main.c”和“main.h” ,参考“1_工程模板”的工程代码。
“Project”用于存放工程文件,工程文件由创建Keil工程自动生成,这里打开Keil。
打开Keil后,点击“Project”下的“New μVision Project”,如图 7.1.2 所示。

接着选中“Main”组后,点击“Add Files…”,选中“main.c”,再点击“Add

接着选中“Core”,点击“Add Files…”,接着在弹出的文件选择界面,进入“Core”目录,然后需要 修改“文件类型”下拉选择框为“All files(.)”,才能看到所有文件。接着添加如图以下文件。
在这里插入图片描述

再点击“Groups”的 新建图标,创建一个新的组,名为“Driver”,该组没有文件,无需添加。再新 建“SDK”,加入“SDK\STM32F1xx_HAL_Driver\Src”下的几个必须文件。
在这里插入图片描述

点击“工程项目选项”按钮 ,在弹出的窗口,选择“Target”标签,如图 所示。追求稳定,这里设置ARM交叉编译工具链为“Use default compiler version 5”。“Use MicroLIB”也可以勾选上,编译出来的文件占用资源会更小,也为后面调试串口实验提供printf。再下面是Flash和RAM的起始地址和大小,与前面图 所示的Flash和RAM是 吻合的,这里无需修改。

在这里插入图片描述

切换到“Output”,勾选上“Create HEX File”,生成hex文件供其它烧写工具使用
在这里插入图片描述

再切换到“C/C++”标签,在“Define”栏填入“USE_HAL_DRIVER,STM32F103xB”,分别表示使 用HAL库,使用的芯片型号系列。HAL库很多C语言语法采用C99标准,这里需要勾选上“C99 Mode”,不 然会编译报错。最后点击“Include Paths”最右边的按钮 添加头文件,如图 所示。 在弹出的文件夹设置窗口,点击 按钮,依次添加如图所示路径,最后点击“OK。

在这里插入图片描述

切换到“Debug”标签,点击在这里插入图片描述
我们使用的ST-Link,因此需要选择“ST-Link Debugger”,最后点击“OK”。

在这里插入图片描述

编译后出现Verify ok即表示编译、烧写都正常(当前工程主函数没有任何内容,开发板无任何现象。

总结
工程模块的创建步骤如下:

  1. 创建相关文件夹;
  2. 复制CMSIS和HAL库;
  3. 创建“main.c/h”和“stm32f1xx_clk.c/h”;
  4. 创建新Keil工程;
  5. 添加组文件夹和工程文件;
  6. 配置Keil设置

Keill的通用设置
1.
Keil默认在下载程序后,需要手动按下开发板复位才能启动程序。通过修改修改配置,可以下载后自动
复位重启运行程序,方便调试
切换到“Utilities”标签,点击“Settings
在这里插入图片描述

随后弹出设置界面,切换到“Flash Download”标签,勾选上“Reset and Run”,如图 所示。接 着再切换到“Pack”标签,去掉勾选“Enable”,如图所示

实际开发中,可能需要Bin格式的下载文件,而Keil默认不会生成Bin格式文件,需要进行相关配置。点击按钮,切换到“User”标签,在“After Build/Rebuild”添加“fromelf --bin -o "$L@L.bin" "#L"”,同时 勾选“Run #1”,表示在编译完后,执行fromelf命令生成bin文件。
在这里插入图片描述

设置完成后,点击“OK”保存。重新编译整个工程,将在工程的“Project\Objects”目录下生成xx.bin文件(xx为工程名)。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 20:51:47  更:2022-02-09 20:51:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:16:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码